样例全过,哇成零分求助
查看原帖
样例全过,哇成零分求助
343354
蒟蒻王孑楼主2020/7/19 19:34

从评测机返回的结果看起来是Incorrect和Correct判断的问题,但样例全过了

下载数据太大了,更本派不上用场

#include<bits/stdc++.h>
using namespace std;
const int mx=10000005;
const int mn=1005;
int ans[mx],stuans[mx];
string rawstuans[mn];
bool isjump=false;
int pzs(string s,int p){
    int h=0,w=1,i;
    for(int i=s.size()-1;i>=0;i--){
        if(isdigit(s[i])) h+=(s[i]-48)*w;
        else h+=(s[i]-55)*w;
        w*=p;
    }
    return h;
} 
string szp(int n,int p){
    string s;
    int y;
    while(n){
        y=n%p;
        if(y>=10) s=char(y+55)+s;
        else s=char(y+48)+s;
        n=n/p;
    }
    return s;
}
bool checkid(string _id){
    bool flag=true;
    int id=pzs(_id,2);
    if(!(id>0&&id<10001)){
        cout<<"Wrong ID"<<endl;
        return true;
    }
    cout<<"ID: "<<id<<endl;
    return false;
}
void checktype(string id,string choose){
    int correct_answer=id[id.size()-1]-'0';
    if(id[id.size()-1]==choose[1]) cout<<"Type Correct"<<endl;
    else cout<<"Type Incorrect"<<endl;
}
void getscore(int correct_ans[],int ans[],double size_of_answers){
    double correct_answer=0;
    for(int i=0;i<size_of_answers;i++){
        // cout<<correct_ans[i]<<" "<<ans[i]<<endl;
        if(correct_ans[i]==ans[i]){
            correct_answer++;
        }
    }
    // cout<<correct_answer<<endl;
    cout<<fixed<<setprecision(1)<<correct_answer/size_of_answers*100.0<<endl;;
}
void make_std(string raw,int res[]){
    for(int i=0;i<raw.size();i++){
        if(raw[i]=='A') res[i]=1;
        if(raw[i]=='B') res[i]=2;
        if(raw[i]=='C') res[i]=3;
        if(raw[i]=='D') res[i]=4;
    }
}
void make_ans(string ans[],int res[],int size){
    for(int i=0;i<size;i++){
        if(ans[i]=="1000"){
            res[i]=1;
            continue;
        }
        if(ans[i]=="0100"){
            res[i]=2;
            continue;
        }
        if(ans[i]=="0010"){
            res[i]=3;
            continue;
        }
        if(ans[i]=="0001"){
            res[i]=4;
            continue;
        }
        res[i]=-1;
    }
}
int main(){
    int n,t;
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin>>n>>t;
    string s,tmp;
    cin>>s;
    make_std(s,ans);
    for(int i=1;i<=n;i++){
        isjump=false;
        cin>>s;
        if(checkid(s)) isjump=true;
        cin>>tmp;
        if(!isjump) checktype(s,tmp);
        for(int j=0;j<t;j++){
            cin>>s;
            rawstuans[j]=s;
        }
        if(!isjump) make_ans(rawstuans,stuans,t);
        if(!isjump) getscore(ans,stuans,t);
        cout<<endl;
    }
    return 0;
}
2020/7/19 19:34
加载中...