样例全过但是全WA求调orz
查看原帖
样例全过但是全WA求调orz
1044843
qwer6楼主2024/8/2 18:16
#include<bits/stdc++.h>
using namespace std;
string id,s;
int checkid(string id){
	int num=0;
	for(int i=0;i<id.size();i++){
		num*=2;
		num+=id[i]-'0';
	}
	return num;
}
int n,a[105];
int main(){
	int t;
	cin>>t>>n;
	cin>>s;
	for(int i=0;i<s.size();i++)a[i+1]=s[i]-'A'+1;
	while(t--){
		string type;
		string student_answer[105];
		int cnt,answer,correct=0;
		cin>>id;
		cin>>type;
		for(int i=1;i<=n;i++)cin>>student_answer[i];
		bool flag=0;
		if(checkid(id)>=1&&checkid(id)<=10000)cout<<"ID:"<<checkid(id)<<endl;
		else{
			cout<<"Wrong ID\n";
			flag=1;
		}
		if(!flag){
			if(id[id.size()-1]=='0'){
				if(type[0]=='1'&&type[1]=='0')cout<<"Type Correct\n";
				else cout<<"Type Incorrect\n";
			}
			if(id[id.size()-1]=='1'){
				if(type[0]=='0'&&type[1]=='1')cout<<"Type Correct\n";
				else cout<<"Type Incorrect\n";
			}
			for(int i=1;i<=n;i++){
				cnt=0;
				for(int j=0;j<student_answer[i].size();j++)if(student_answer[i][j]=='1')cnt++;
				if(cnt==1){
					for(int j=0;j<student_answer[i].size();j++)if(student_answer[i][j]=='1')answer=j+1;	
					if(answer==a[i])correct++;
				}else{
					continue;
				}
			}	
			double mark=100.0/n*correct;
			printf("%.1f\n\n",mark);
		}
	}	
}
2024/8/2 18:16
加载中...