간만에 AC받도록 협조(?)해준 스파킹군에게 심심한 감사를 표하며 ㅋㅋ
원리는 간단합니다
모든 "행의 합"들과 "열의 합"들이 짝수가 나오는 경우
와
"행의 합"들 중 홀수가 1개, "열의 합"들 중 홀수가 1개 나오는 경우
를 제외하고는 전부 "Corrupt"를 출력해주시면 되겠습니다 :)
#includeusing namespace std; int main() { int size = 1; int rowsum[99]; int colsum[99]; while(1) { int i, j; int temp; int rowodds, colodds; scanf( "%d", &size ); if( size == 0 ) { break; } for( i = 0; i < size; i++ ) { rowsum[i] = 0; colsum[i] = 0; } for( i = 0; i < size*size; i++ ) { scanf( "%d", &temp ); rowsum[ i/size ] += temp; colsum[ i%size ] += temp; } rowodds = 0; colodds = 0; for( i = 0; i < size; i++ ) { if( rowsum[i] % 2 == 1 ) { rowodds++; } } if( rowodds > 1 ) { printf( "Corrupt\n" ); } else { for( i = 0; i < size; i++ ) { if( colsum[i] % 2 == 1 ) { colodds++; } } if( colodds != rowodds ) { printf( "Corrupt\n" ); } else if( rowodds == 0 ) { printf( "OK\n" ); } else { for( i = 0; i < size; i++ ) { if( rowsum[i] % 2 == 1 ) { break; } } for( j = 0; j < size; j++ ) { if( colsum[j] % 2 == 1 ) { break; } } printf( "Change bit (%d,%d)\n", i+1, j+1 ); } } } return 0; }
'Solutions > Mr.K's Solution' 카테고리의 다른 글
PKU 3032. Card Trick. [판정:AC] (0) | 2010.12.31 |
---|---|
PKU 3085. Quick Change. [판정:AC] (0) | 2010.10.07 |
UVa 341. Non-Stop Travel. [판정:TLE] (1) | 2010.08.29 |
PKU 2844. Sum and Product. [판정:TLE] (1) | 2010.05.29 |
PKU 1422. Air Raid. [판정:RE] (0) | 2010.05.03 |