Borderou de evaluare (job #2677215)

Utilizator Marius05Voina Marius Marius05 Data 26 noiembrie 2020 01:09:35
Problema X si 0 Status done
Runda Arhiva ICPC Compilator cpp-64 | Vezi sursa
Scor 100

Raport evaluator

Compilare: main.cpp: In function 'int main()': main.cpp:4:1185: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] using namespace std;int win[59049],p3[20]={1};int finish(string b){if(b[0]>0&&b[0]==b[1]&&b[1]==b[2])return 1;if(b[3]>0&&b[3]==b[4]&&b[4]==b[5])return 1;if(b[6]>0&&b[6]==b[7]&&b[7]==b[8])return 1;if(b[0]>0&&b[0]==b[3]&&b[3]==b[6])return 1;if(b[1]>0&&b[1]==b[4]&&b[4]==b[7])return 1;if(b[2]>0&&b[2]==b[5]&&b[5]==b[8])return 1;if(b[0]>0&&b[0]==b[4]&&b[4]==b[8])return 1;if(b[2]>0&&b[2]==b[4]&&b[4]==b[6])return 1;return 0;}int memo(int conf){if(win[conf])return win[conf];string b;int nrx=0,nry=0;for(int c=conf,i=0;i<9;++i,c/=3){b+=(c%3);if(b[i]==1)++nrx;if(b[i]==2)++nry;}if(finish(b)){if(nrx>nry)win[conf]=1;else win[conf]=-1;return win[conf];}if(nrx+nry==9){win[conf]=2;return win[conf];}if(nrx==nry){win[conf]=-1;for(int i=0;i<9;++i)if(!b[i]){int nxt=conf+p3[i];if(memo(nxt)==1||(memo(nxt)==2&&win[conf]==-1))win[conf]=memo(nxt);}}else{win[conf]=1;for(int i=0;i<9;++i)if(!b[i]){int nxt=conf+2*p3[i];if(memo(nxt)==-1||(memo(nxt)==2&&win[conf]==1))win[conf]=memo(nxt);}}return win[conf];}int main(){ifstream f("xsizero.in");ofstream g("xsizero.out");for(int i=1;i<9;++i)p3[i]=3*p3[i-1];memo(0);string a,b;int t=0;for(;f>>a;){f>>b;a.append(b);f>>b;a.append(b);int conf=0;for(int i=0;i<a.size();++i)if(a[i]=='X')conf+=p3[i];else if(a[i]=='0')conf+=2*p3[i];g<<"Testul #"<<(++t)<<": ";if(!win[conf])g<<"invalid\n";else if(win[conf]==1)g<<"win\n";else if(win[conf]==2)g<<"draw\n";else g<<"lose\n";}} ~^~~~~~~~~
Test Timp executie Memorie folosita Mesaj Punctaj/test
1124ms2228kbOK100
Punctaj total100

Ceva nu functioneaza?