#include #include #include #include using namespace std; //ios_base::sync_with_stdin(0); struct var{ int ileRazy; int kiedyUzyte; }; int main( int argc, char** argv ) { unsigned int idSzyfry[1000000]; map kontrola; struct var varTmp; int iloscSzyfrow=0, iloscZakresow=0, poczatek=0, koniec=0; unsigned int llTmp=0; bool brakPowtorzen=true, stop=false; while(!stop) { kontrola.clear(); fflush(stdin); scanf("%d %d", &iloscSzyfrow, &iloscZakresow); // cin >> iloscSzyfrow; // cin >> iloscZakresow; if(iloscSzyfrow ==0 && iloscZakresow==0) { //cout << "kurwa sa zera, ja pierdole, czemu nie dzialasz?" << endl; return 0; } for(int i=0; i> idSzyfry[i]; scanf("%d", &idSzyfry[i]);//&llTmp); varTmp.ileRazy=0; varTmp.kiedyUzyte=-1; kontrola[llTmp] = varTmp; } for(int i=0; i> poczatek; // cin >> koniec; scanf("%d %d", &poczatek, &koniec); //printf("P%d K%d\n", poczatek, koniec); poczatek--;//ma zgadzac zamiast od 1->N, mamy od 0->N-1 koniec--;//ma zgadzac zamiast od 1->N, mamy od 0->N-1 //printf("P%d K%d\n", poczatek, koniec); //szukamy pierwszego niemniejszego for(int j=poczatek; j<=koniec; j++) { //printf("szyfr: %ld\n", idSzyfry[j]); if(kontrola[idSzyfry[j] ].kiedyUzyte!=i) { kontrola[idSzyfry[j] ].ileRazy=1; kontrola[idSzyfry[j] ].kiedyUzyte=i; } else if(kontrola[idSzyfry[j] ].ileRazy==0) { kontrola[idSzyfry[j] ].ileRazy++; } else { printf("%d\n", idSzyfry[j]); brakPowtorzen=false; break;//wyjscie z for'a z j. kiedy odnajdziemy sie } } if(brakPowtorzen==true) { printf("OK\n"); } else { brakPowtorzen=true; } } printf("\n"); } return 0; }