#include #include #include using namespace std; struct var{ int ileRazy; int kiedyUzyte; int instancja; }; int main( int argc, char** argv ) { unsigned int idSzyfry[1000000]; map kontrola; struct var varTmp; int iloscSzyfrow=0, iloscZakresow=0, poczatek=0, koniec=0, aktualnaInstancja=-1; unsigned int llTmp=0; bool brakPowtorzen=true, stop=false;; while(!stop) { aktualnaInstancja++; kontrola.clear(); scanf("%d %d", &iloscSzyfrow, &iloscZakresow); if(iloscSzyfrow == 0 && iloscZakresow == 0) { return 0; } else { for(int i=0; iN, mamy od 0->N-1 koniec--;//ma zgadzac zamiast od 1->N, mamy od 0->N-1 for(int j=poczatek; j<=koniec; j++) { //printf("szyfr: %ld\n", idSzyfry[j]); if(kontrola[idSzyfry[j] ].instancja!=aktualnaInstancja) { kontrola[idSzyfry[j] ].kiedyUzyte=-1; kontrola[idSzyfry[j] ].ileRazy=-1; kontrola[idSzyfry[j] ].instancja=aktualnaInstancja; } 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; }