3 個樣例全部正確。
自己下載的數據點 1 本機和數據輸出完全一致:
https://code.trainoi.com/compare/354/355
這是我的 Code:
#include<bits/stdc++.h>
#define int long long
#define fore(i,x,n) for(int i=x;i<=n;i++)
const int MAXX=10005;
const int mod=1;
inline int __read(){
int x=0,f=1;char ch=getchar();
while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();}
while(isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;
}
inline void __write(int x){
if(x<0) putchar('-'),x=-x;
if(x>9) __write(x/10);
putchar(x%10+'0');
}
inline void __writesp(int x){
__write(x);
putchar(' ');
}
inline void __writeln(int x){
__write(x);
putchar('\n');
}
class Name
{
private:
public:
protected:
};
int T,n;
std::string rans;
std::string ab;
std::string ans;
std::string id;
inline int octid(std::string a){
int total=0,k=0;
for(int i=15;i>=0;i--) {
if(a[i]=='1') total+=pow(2,k);
k++;
}
return total;
}
signed main(){
#ifdef LOCAL
freopen("debug_data.in","r",stdin);
freopen("debug_data.out","w",stdout);
#endif
T=__read(); n=__read();
double s=100.0/n;
getline(std::cin,rans);
while(T--){
bool flag=true;
getline(std::cin,id);
getline(std::cin,ab);
int sid=octid(id);
if(sid>=1&&sid<=10000)
printf("ID: %lld\n",sid);
else{
puts("Wrong ID\n");
flag=false;
}
char lastnum=id[15];
//std::cout<<lastnum<<std::endl;
char a=ab[0];
char b=ab[1];
if(lastnum=='0'){
if(flag)
puts(a=='1'&&b=='0'?"Type Correct":"Type Incorrect");
}
else{
if(flag)
puts(a=='0'&&b=='1'?"Type Correct":"Type Incorrect");
}
double ssum=0;
fore(i,0,n-1){
getline(std::cin,ans);
char pans;
if(ans=="1000") pans='A';
else if(ans=="0100") pans='B';
else if(ans=="0010") pans='C';
else if(ans=="0001") pans='D';
else continue;
if(pans==rans[i]) ssum+=s;
}
if(flag) printf("%.1lf\n\n",ssum);
}
}