// 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