样例全对,ID加了空格,数据太大不会比对,求助!!!
#include<bits/stdc++.h>
using namespace std;
int t,n,jz,ans,nid,k,res;
string id,s,a=" DC B A";
int main(){
freopen("xiahuan.out","w",stdout);
cin >> t >> n >> s;
for(int i=1;i<=t;i++){
cin >> id >> jz;
nid=0,ans=0,res=0;
for(int j=id.size()-1;j>=0;j--)
nid+=(id[j]-'0')*pow(2,id.size()-1-j);
if(nid<1||nid>10000){
res=1;
cout << "Wrong ID\n\n";
}else{
cout << "ID: " << nid << "\n";
if((jz==10||jz==1)&&(jz%10==id[15]-'0')) cout << "Type Correct\n";
else cout << "Type Incorrect\n";
}
for(int j=1;j<=n;j++){
cin >> id;
nid=0;
for(int k=id.size()-1;k>=0;k--) nid+=(id[k]-'0')*pow(2,id.size()-1-k);
if(a[nid]==s[j-1]) ans++;
}
if(res==1) continue;
cout << fixed << setprecision(1) << 100.0/n*ans << "\n\n";
}
return 0;
}
我是用二进制转化成十进制的下标来存储正确答案的