|
|
back to boardI've got WA on 1003. Somebody give me some good test... MY CODE: #include <iostream.h> #define maxN 5005 int i,Len,N; int mn[maxN]; int L[maxN]; int R[maxN]; int pL[maxN]; int pR[maxN]; void search(int l,int r,int &il,int &ir,int &pl,int &pr){ int j; il = ir = -1; for(j = 0;j < i;j++){ if(r + 1 == L[j]){ ir = j; pr = pL[j]; break; } } for(j = 0;j < i;j++){ if(l == R[j] + 1){ il = j; pl = pR[j]; break; } } for(j = 0;j < i;j++){ if(r == R[j]){ ir = j; pr = pR[j]; break; } } for(j = 0;j < i;j++){ if(l == L[j]){ il = j; pl = pL[j]; break; } } } int findroot(int k){ if(mn[k] == -1)return -1; if(mn[k] == k)return k; int l = findroot(mn[k]); mn[k] = l; return l; } int add(int a,int b,int c){ int pl,pr,il,ir; L[i] = a; R[i] = b; search(a,b,il,ir,pl,pr); if(il == -1 && ir == -1){ pL[i] = 0; pR[i] = c; mn[i] = i; } if(il != -1 && ir == -1){ int rl = findroot(il); mn[i] = rl; pL[i] = pl; pR[i] = (pL[i] + c) % 2; } if(il == -1 && ir != -1){ int rr = findroot(ir); mn[i] = rr; pR[i] = pr; pL[i] = (pR[i] - c + 2) % 2; } if(il != -1 && ir != -1){ int rl = findroot(il); int rr = findroot(ir); mn[i] = rl; if(rl == rr){ if(((pl + c) % 2) != (pr % 2)){ return 0; } }else{ pL[i] = pl; pR[i] = (pL[i] + c) % 2; if(pr != pR[i]) for(int k = 0;k < i;k++) if(findroot(k) == rr)pR[k] = (pR[k] + 1) % 2,pL[k] = (pL[k] + 1) % 2; int o = findroot(ir); mn[o] = i; } } return 1; } void main(void){ for(;;){ cin >> Len; if(Len == -1)break; cin >> N; int bad = 0; for(i = 0;i < N;i++){ mn[i] = -1; int a,b;char k[10]; cin >> a >> b >> k; // FOR debug reasons only... // if(a == -1){cout << "Wrong input";return;} // if(b == -1){cout << "Wrong input";return;} if(!add(a,b,(k[0] == 'e') ? 0 : 1)){ cout << i << "\n"; bad = 1; for(i++;i < N;i++) cin >> a >> b >> k; break; } } if(!bad)cout << N << "\n"; } } http://www.fi.muni.cz/ceoi/problems.html Re: http://www.fi.muni.cz/ceoi/problems.html i know that this task from CEOI 99 but i don't want to see sol. and theier test, because in that case it is a cheat :-) Re: http://www.fi.muni.cz/ceoi/problems.html But you can find your mistake! And if I send you this test, is it cheat? :-) > i know that this task from CEOI 99 but i don't want to see sol. and > theier test, because in that case it is a cheat :-) |
|
|