⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1110.cpp

📁 哈尔滨工业大学ACM 竞赛网上在线试题集锦的源代码
💻 CPP
字号:
/*  This Code is Submitted by wywcgs for Problem 1110 on 2005-10-03 at 00:07:00 */ 
#include <stdio.h>
#include <string.h>

bool mystrcmp(char*, char*);

int main()
{
	int E, K, badKey[32], max, t = 1;
	int i, j, k, len, stack[32], top, wordlen;
	char excuse[32][128], word[32];
	char keyWord[32][32];
	bool begin;
	
	while(scanf("%d %d", &K, &E) == 2) {
		memset(badKey, 0, sizeof(badKey));
		for(i = 0; i < K; i++) {
			scanf("%s", keyWord[i]);
		}
		max = -1;
		top = 0;
		while(getchar() != '\n')
			;
		for(i = 0; i < E; i++) {
			gets(excuse[i]);
			len = strlen(excuse[i]);
			j = 0;
			while(j <= len) {
				begin = false;
				wordlen = 0;
				for(; j <= len; j++) {
					if(j == len) {
						word[wordlen] = 0;
						j++;
						break;
					} else if(excuse[i][j] <= 'z' && excuse[i][j] >= 'A') {
						word[wordlen++] = excuse[i][j];
						begin = true;
					} else {
						if(begin) {
							word[wordlen] = 0;
							break;
						}
					}
				}
				for(k = 0; k < K; k++) {
					if(mystrcmp(word, keyWord[k])) {
						badKey[i]++;
						break;
					}
				}
			}
			if(badKey[i] == max) {
				stack[top++] = i;
			} else if(badKey[i] > max) {
				max = badKey[i];
				top = 0;
				stack[top++] = i;
			}
		}
		printf("Excuse Set #%d\n", t);
		t++;
		for(i = 0; i < top; i++) {
			printf("%s\n", excuse[stack[i]]);
		}
		putchar('\n');
	}
	
	return 0;
}

bool mystrcmp(char *a, char *b)
{
	int lena = strlen(a);
	int lenb = strlen(b);
	char ca, cb;
	int i;
	
	if(lena != lenb) {
		return false;
	} else {
		for(i = 0; i < lena; i++) {
			ca = a[i];
			cb = b[i];
			if(ca >= 'A' && ca <= 'Z') {
				ca += 'a' - 'A';
			}
			if(cb >= 'A' && cb <= 'Z') {
				cb += 'a' - 'A';
			}
			if(ca != cb) {
				return false;
			}
		}
		return true;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -