Untitled
unknown
plain_text
2 years ago
3.7 kB
16
Indexable
#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <stdio.h>
#define CMD_INIT (100)
#define CMD_WRITE_MESSAGE (200)
#define CMD_COMMENT_TO (300)
#define CMD_ERASE (400)
#define CMD_GET_BEST_MESSAGES (500)
#define CMD_GET_BEST_USERS (600)
#define MAXL (10)
extern void init();
extern int writeMessage(char mUser[], int mID, int mPoint);
extern int commentTo(char mUser[], int mID, int mTargetID, int mPoint);
extern int erase(int mID);
extern void getBestMessages(int mBestMessageList[]);
extern void getBestUsers(char mBestUserList[][MAXL + 1]);
static int mstrcmp(char a[], char b[])
{
int idx = 0;
while (a[idx] != '\0' && a[idx] == b[idx])
++idx;
return a[idx] - b[idx];
}
static bool run()
{
int Q;
int mID, mTargetID, mPoint;
char mUser[MAXL + 1];
char mBestUserList[5][MAXL + 1];
int mBestMessageList[5];
int ret = -1, ans;
scanf("%d", &Q);
bool okay = false;
for (int q = 0; q < Q; ++q)
{
int cmd;
scanf("%d", &cmd);
switch(cmd)
{
case CMD_INIT:
init();
okay = true;
break;
case CMD_WRITE_MESSAGE:
scanf("%s %d %d", mUser, &mID, &mPoint);
ret = writeMessage(mUser, mID, mPoint);
scanf("%d", &ans);
if (ret != ans)
okay = false;
break;
case CMD_COMMENT_TO:
scanf("%s %d %d %d", mUser, &mID, &mTargetID, &mPoint);
ret = commentTo(mUser, mID, mTargetID, mPoint);
scanf("%d", &ans);
if (ret != ans)
okay = false;
break;
case CMD_ERASE:
scanf("%d", &mID);
ret = erase(mID);
scanf("%d", &ans);
if (ret != ans)
okay = false;
break;
case CMD_GET_BEST_MESSAGES:
getBestMessages(mBestMessageList);
for (int i = 0; i < 5; ++i)
{
scanf("%d", &ans);
if (mBestMessageList[i] != ans)
okay = false;
}
break;
case CMD_GET_BEST_USERS:
getBestUsers(mBestUserList);
for (int i = 0; i < 5; ++i)
{
scanf("%s", mUser);
if (mstrcmp(mBestUserList[i], mUser) != 0)
okay = false;
}
break;
default:
okay = false;
break;
}
}
return okay;
}
int main()
{
setbuf(stdout, NULL);
//freopen("sample_input.txt", "r", stdin);
int TC, MARK;
scanf("%d %d", &TC, &MARK);
for (int tc = 1; tc <= TC; ++tc)
{
int score = run() ? MARK : 0;
printf("#%d %d\n", tc, score);
}
return 0;
}
#define MAXL (10)
void init()
{
return;
}
int writeMessage(char mUser[], int mID, int mPoint)
{
return -1;
}
int commentTo(char mUser[], int mID, int mTargetID, int mPoint)
{
return -1;
}
int erase(int mID)
{
return -1;
}
void getBestMessages(int mBestMessageList[])
{
return;
}
void getBestUsers(char mBestUserList[][MAXL + 1])
{
return;
}
25 100
20
100
200 aaa 1 10 10
200 bbb 2 5 5
300 ccc 3 1 5 15
300 ddd 4 1 3 18
300 eee 5 3 4 22
600 aaa bbb ccc eee ddd
200 ccc 6 20 25
200 bbb 7 13 18
200 aaa 8 20 30
500 1 6 8 7 2
200 fff 9 1 1
300 ddd 10 6 10 30
400 3 13
600 aaa ccc bbb ddd fff
400 6 0
300 ccc 20 2 35 40
300 fff 30 9 14 15
500 2 8 9 1 7
600 ccc aaa bbb fff ddd
27
100
200 t 424 9 9
200 mpky 7 7 7
300 l 492 7 1 8
300 p 860451 424 6 15
300 hv 2158753 860451 2 17
300 t 8225355 492 1 9
300 hv 9 860451 2 19
200 kzwgyt 56 9 9
200 mpky 90388 6 13
400 492 7
600 mpky kzwgyt t p hv
200 geur 905 1 1
200 geur 558 1 2
500 424 56 7 90388 558
300 mpky 532037 90388 6 12
300 geur 4380 532037 8 20
300 kzwgyt 580534984 905 5 6
200 l 12838 4 4
300 p 95050 90388 6 26
200 kzwgyt 81 1 15
300 zfu 2 424 8 27
400 12838 0
200 mpky 110748 1 20
200 xp 88696 3 3
500 424 90388 56 7 905
600 mpky kzwgyt p geur tEditor is loading...