// UVa 541 - Error Correction #include <iostream> #include <string.h> #include <stdio.h> using namespace std; int main() { int n; cin >> n; while (n) { int colsum[100]; memset(colsum, 0, sizeof(colsum)); int broken_rows = 0, broken_row; for (int i = 0; i < n; i++) { int rowsum = 0; for (int j = 0; j < n; j++) { int a; cin >> a; rowsum ^= a; colsum[j] ^= a; } if (rowsum) { broken_rows++; broken_row = i; } } int broken_cols = 0, broken_col; for (int j = 0; j < n; j++) if (colsum[j]) { broken_cols++; broken_col = j; } if (broken_cols == 0 && broken_rows == 0) printf("OK"); else if (broken_cols == 1 && broken_rows == 1) printf("Change bit (%d,%d)", broken_row + 1, broken_col + 1); else printf("Corrupt"); cout << endl; cin >> n; } return 0; }
Wednesday, June 10, 2015
UVa 541 - Error Correction
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment