func_code_string: #include <bits/stdc++.h>   using namespace std;   int nbElems, nbAuto;   bitset<2000> autos[2000];   bitset<2000> inverse[2000];   int main() {     scanf( %d%d , &nbElems, &nbAuto);     vector<pair<int, int> > paires;     for (int iPaire = 0; iPaire < nbAuto; iPaire++) {       int pos, elem;       scanf( %d%d , &pos, &elem);       autos[pos - 1][elem - 1] = true;       paires.push_back(make_pair(pos - 1, elem - 1));     }     for (int iElem = 0; iElem < nbElems; iElem++) {       inverse[iElem][iElem] = 1;     }     for (int iLigne = 0; iLigne < nbElems; iLigne++) {       if (!autos[iLigne][iLigne]) {         for (int iAutre = iLigne + 1; iAutre < nbElems; iAutre++) {           if (autos[iAutre][iLigne]) {             autos[iLigne] ^= autos[iAutre];             inverse[iLigne] ^= inverse[iAutre];             break;           }         }       }       for (int iAutre = 0; iAutre < nbElems; iAutre++) {         if (iAutre != iLigne && autos[iAutre][iLigne]) {           autos[iAutre] ^= autos[iLigne];           inverse[iAutre] ^= inverse[iLigne];         }       }     }     for (int iPaire = 0; iPaire < nbAuto; iPaire++) {       if (inverse[paires[iPaire].second][paires[iPaire].first]) {         printf( NO n );       } else {         printf( YES n );       }     }     return 0;   }   