30分求助,只A了 Subtask#2
查看原帖
30分求助,只A了 Subtask#2
669924
guozhetao楼主2023/1/24 18:58

提交记录

#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
#include<queue>
#include<map>
#include<algorithm>
#include<cstring>

using namespace std;

// 快读
inline int read() {
	int x = 0,f = 1;char ch = getchar();
	while (ch < '0' or ch > '9'){if (ch == '-') f = -1;ch = getchar();}
	while (ch >= '0' and ch <='9'){x = x * 10 + ch - 48;ch = getchar();}
	return x * f;
}
int t,n,m;
string a[1005],b[10];
void check() {
	string a[20];
	bool v = 1;
	for(int i = 1;i <= 2 * m;i++) {
		cin>>a[i];
		int kk = a[i].size();
     //判断见祖宗人
		if(a[i][0] == '/' and a[i][1] == '/' and a[i][2] == 'f' and a[i][3] == 'r' and a[i][4] == 'e' and a[i][5] == 'o' and a[i][6] == 'p' and a[i][7] == 'e' and a[i][8] == 'n' and a[i][9] == '(' and a[i][10] == '"' and a[i][kk - 3] == '"' and a[i][kk - 2] == ')' and a[i][kk - 1] == ';') {
			printf("Wrong file operation takes you to your ancestors along with your 3 years' efforts on OI.\n");
			return;
		}
     //判断乐子人
		if(v == 0) continue;
      //判断字符串长度是否合法
		if(i & 1) {
			if(kk <= 25) {
				v = 0;
				continue;
			}
		}
		else{
			if(kk <= 27) {
				v = 0;
				continue;
			}
		}
     //判断题目前的字符
		if(a[i][0] != 'f') {
			v = 0;
			continue;
		}
		if(a[i][1] != 'r') {
			v = 0;
			continue;
		}
		if(a[i][2] != 'e') {
			v = 0;
			continue;
		}
		if(a[i][3] != 'o') {
			v = 0;
			continue;
		}
		if(a[i][4] != 'p') {
			v = 0;
			continue;
		}
		if(a[i][5] != 'e') {
			v = 0;
			continue;
		}
		if(a[i][6] != 'n') {
			v = 0;
			continue;
		}
		if(a[i][7] != '(') {
			v = 0;
			continue;
		}
		if(a[i][8] != '"') {
			v = 0;
			continue;
		}
     //判断题目字符
		int ssoi = b[(i + 1) / 2].size();
		for(int j = 0;j < ssoi;j++) {
			if(a[i][j + 9] != b[(i + 1) / 2][j]) {
				v = 0;
				continue;
			}
		}
     //分情况判断题目后字符
		if(a[i][9 + ssoi] != '.') {
			v = 0;
			continue;
		}
		if(i & 1) {
			if(a[i][10 + ssoi] != 'i') {
				v = 0;
				continue;
			}
			if(a[i][11 + ssoi] != 'n') {
				v = 0;
				continue;
			}
			if(a[i][12 + ssoi] != '"') {
				v = 0;
				continue;
			}
			if(a[i][13 + ssoi] != ',') {
				v = 0;
				continue;
			}
			if(a[i][14 + ssoi] != '"') {
				v = 0;
				continue;
			}
			if(a[i][15 + ssoi] != 'r') {
				v = 0;
				continue;
			}
			if(a[i][16 + ssoi] != '"') {
				v = 0;
				continue;
			}
			if(a[i][17 + ssoi] != ',') {
				v = 0;
				continue;
			} 
			if(a[i][18 + ssoi] != 's') {
				v = 0;
				continue;
			}
			if(a[i][19 + ssoi] != 't') {
				v = 0;
				continue;
			}
			if(a[i][20 + ssoi] != 'd') {
				v = 0;
				continue;
			}
			if(a[i][21 + ssoi] != 'i') {
				v = 0;
				continue;
			}
			if(a[i][22 + ssoi] != 'n') {
				v = 0;
				continue;
			}
			if(a[i][23 + ssoi] != ')') {
				v = 0;
				continue;
			} 
			if(a[i][24 + ssoi] != ';') {
				v = 0;
				continue;
			}
		}
		else {
			if(a[i][10 + ssoi] != 'o') {
				v = 0;
				continue;
			}
			if(a[i][11 + ssoi] != 'u') {
				v = 0;
				continue;
			}
			if(a[i][12 + ssoi] != 't') {
				v = 0;
				continue;
			}
			//
			//
			if(a[i][13 + ssoi] != '"') {
				v = 0;
				continue;
			}
			if(a[i][14 + ssoi] != ',') {
				v = 0;
				continue;
			}
			if(a[i][15 + ssoi] != '"') {
				v = 0;
				continue;
			}
			if(a[i][16 + ssoi] != 'w') {
				v = 0;
				continue;
			}
			if(a[i][17 + ssoi] != '"') {
				v = 0;
				continue;
			}
			if(a[i][18 + ssoi] != ',') {
				v = 0;
				continue;
			} 
			if(a[i][19 + ssoi] != 's') {
				v = 0;
				continue;
			}
			if(a[i][20 + ssoi] != 't') {
				v = 0;
				continue;
			}
			if(a[i][21 + ssoi] != 'd') {
				v = 0;
				continue;
			}
			if(a[i][22 + ssoi] != 'o') {
				v = 0;
				continue;
			}
			if(a[i][23 + ssoi] != 'u') {
				v = 0;
				continue;
			}
			if(a[i][24 + ssoi] != 't') {
				v = 0;
				continue;
			}
			if(a[i][25 + ssoi] != ')') {
				v = 0;
				continue;
			} 
			if(a[i][26 + ssoi] != ';') {
				v = 0;
				continue;
			}
		}
		//printf("%d\n",v);
	}
	if(v) printf("PION2202 RP++.\n");
	else printf("Good luck and have fun.\n");
	return;
	
}
int main() {
	t = read(),n = read(),m = read();
	for(int i = 1;i <= m;i++) {
		cin>>b[i];
	}
	while(n--) {
		check();
	}
    return 0;
}
2023/1/24 18:58
加载中...