#include #include #include #define L 1000 int yesSource[L]; //colonna per colonna, contiene il numero di uni int yesTarget[L]; char s[L]; using namespace std; int main(int argc, char **argv) { ifstream in("input.txt"); ofstream out("output.txt"); int n, l; int numeroMosse = 0; string line; in >> n; in >> l; //inizializzazione contatori for(int i = 0; i < l; i++) { yesSource[i] = 0; yesTarget[i] = 0; } //lettura sorgente for(int i = 0; i < n; i++) { in >> s; for(int j = 0; j < l; j++) { if(s[j] == '1') yesSource[j]++; } } //lettura target for(int i = 0; i < n; i++) { in >> s; for(int j = 0; j < l; j++) { if(s[j] == '1') yesTarget[j]++; } } //controllo: affinchè esista una soluzione devono essere vere le seguenti condizioni //per ogni i, 0 <= i < l, (yesSource[i] == yesTarget[i] || yesSource[i] == n - yesTarget[i]) //in altro modo, la soluzione non esiste for(int i = 0; i < l; i++) { if(yesSource[i] == yesTarget[i]) { numeroMosse += 0; } else if(yesSource[i] == n - yesTarget[i]) { numeroMosse++; } else { out << "NOT POSSIBLE"; return 0; } } out << numeroMosse << endl; return 0; }