Untitled
plain_text
10 days ago
3.7 kB
2
Indexable
Never
#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 t