PAT B1073 Método de puntuación común para preguntas de opción múltiple (20 puntos)

Inserte la descripción de la imagen aquí
Esta pregunta parece más difícil (problemática) de Grado B. Después de todo, la escribí durante más de una hora. . . Usé muchas operaciones con cuerdas, tal vez soy demasiado inteligente. . .

#include <cstdio>
#include <iostream>
#include <string>
using namespace std;

struct Title{
    
    
	int grade;
	string da;
};

int ff[110][7] = {
    
    };

int main(){
    
    
	int n, m;
	scanf("%d %d", &n, &m);
	
	Title title[m+1];
	double grade[n] = {
    
    0};
	for(int i=1; i<=m; i++){
    
    
		int gs;
		scanf("%d %d", &title[i].grade, &gs);
		int num;
		scanf("%d", &num);
		string da = "";
		for(int j=0; j<num; j++){
    
    
			string s;
			cin >> s;
			da += s;
		}
		title[i].da = da;
	}
	getchar();
	for(int i=0; i<n; i++){
    
    
		for(int j=1; j<=m; j++){
    
    
			getchar();
			int num;
			int flag = 0;
			cin >> num;
			string da = "";
			for(int k=0; k<num; k++){
    
    
				char s;
				cin >> s;
				da += s;
				if(title[j].da.find(s) == string::npos){
    
    
					flag = 1;
					ff[j][s-'a'+1]++;
				}
			}
			for(int k=0; k<title[j].da.size(); k++){
    
    
				char c = title[j].da[k];
				if(da.find(c) == string::npos){
    
    
					ff[j][c-'a'+1]++;
				}
			}
			if(da == title[j].da){
    
    
				grade[i] += title[j].grade;
			}else if(!flag){
    
    
				grade[i] += title[j].grade*1.0/2;
			}
			getchar();
			getchar();
		}
	}
	for(int i=0; i<n; i++){
    
    
		printf("%.1f\n", grade[i]);
	}
	int maxn = -1;
	for(int i=1; i<=m; i++){
    
    
		for(int j=1; j<=5; j++){
    
    
			if(ff[i][j] > maxn){
    
    
				maxn = ff[i][j];
			}
		}
	}
	if(maxn == 0){
    
    
		printf("Too simple");
		return 0;
	}
	for(int i=1; i<=m; i++){
    
    
		for(int j=1; j<=5; j++){
    
    
			if(ff[i][j] == maxn){
    
    
				printf("%d %d-%c\n", maxn, i, 'a'+j-1);
			}
		}
	}
	
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_45964844/article/details/113871466
Recomendado
Clasificación