2320.cpp

来自「哈尔滨工业大学ACM 竞赛网上在线试题集锦的源代码」· C++ 代码 · 共 58 行

CPP
58
字号
/*  This Code is Submitted by wywcgs for Problem 2320 on 2006-08-13 at 20:16:10 */ 
#include <cstdio>
#include <cstring>
#include <set>
#include <algorithm>
using namespace std;
 
const int N = 10240;
const int L = 128;
 
struct cmp {
	bool operator ()(const char* s1, const char* s2) const {
		return strcmp(s1, s2) < 0;
	}
};
 
char w[N][L], wd[L];
multiset<char*, cmp> d;
 
void chg(char*);
 
int main()
{
	int n, T;
	
	scanf("%d", &T);
	for(int t = 1; t <= T; t++) {
		scanf("%d", &n); d.clear();
		for(int i = 0; i < n; i++) {
			scanf("%s", w[i]); chg(w[i]);
			d.insert(w[i]);
		}
		int m; scanf("%d\n", &m);
		printf("Scenario #%d:\n", t);
		for(int i = 0; i < m; i++) {
			char c;
			int k = 1;
			while(true) {
				while((c = getchar()) == ' ');
				if(c == '\n') break;
				else ungetc(c, stdin);
				scanf("%s", wd); chg(wd);
				k *= d.count(wd);
			}
			printf("%d\n", k);
		}
		putchar('\n');
	}
 
	return 0;
}
 
void chg(char* str)
{
	int l = strlen(str);
	if(l > 3) sort(str+1, str+l-1);
}

⌨️ 快捷键说明

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