Am dat peste urmatoarea problema de pe campion.edu.ro:
predecesor
Timp maxim de execuţie/test: 0.5 secunde
Memorie totală disponibilă/stivă: 16MB/1 MB
Considerăm un şir de N numere naturale distincte a1, a2, ..., aN. Pentru fiecare termen ai definim predecesorul său, dacă există, ca fiind cel mai din dreapta termen aj, cu j < i şi aj < ai. De exemplu, pentru şirul 8, 12, 2, 4, 3, 10, 9, 7, 5, 6, numărul 8 este predecesorul lui 12, 3 este predecesorul lui 5, 10 nu este predecesorul niciunui număr, la fel 4 nu este predecesor pentru alt număr, 2 nu are predecesor.
Cerinţă
Scrieţi un program care determină câte numere din şir nu sunt predecesori ai niciunui alt număr.
Date de intrare
Fişierul de intrare predecesor.in conţine pe prima linie numărul natural N reprezentând numărul de termeni ai şirului. Pe următoarea linie se găsesc, separaţi prin câte un spaţiu, termenii a1, a2, ..., aN ai şirului.
Date de ieşire
Fişierul de ieşire predecesor.out va conţine o singura linie pe care va fi scris un singur număr natural reprezentând numărul de termeni ai şirului care nu sunt predecesori ai niciunui alt număr.
Restricţii
3 <= N <= 500 000
1 <= ai <= 1 000 000 000, pentru orice 1 <= i <= N
Exemplu
predecesor.in predecesor.out
10 6
8 12 2 4 3 10 9 7 5 6
Problema este la enunt. In primul rand predecesorul unui numar nu se afla in dreapta acestuia daca analizam conform axei numerelor ci in stanga. In al doilea rand, daca se afla in dreapta, dupa cum spune in enunt, indicele j nu are cum sa fie mai mic decat i (unde i este indicele termenului caruia ii cautam predecesorul).
Acum sa trecem la exemplele din enunt. Primele 3 sunt corecte doar luand in calcul rationamentul corect ce defineste notiunea de predecesor, nu cel din enunt. Mai exact, inlocuind cuvantul "dreapta" cu cuvantul "stanga" in enuntul problemei. Al 4-lea exemplu este gresit. De ce? Pentru ca 4 este predecesorul lui 10.
In exemplul problemei se afla in fisierul de intrare acelasi sir utilizat si exemplificat "corect" in enunt. Problema este in fisierul de iesire. 6 numere nu sunt predecesori niciunui alt numar? Eu am gasit doar 5: 6, 7, 9, 10, 12. Probabil al 6-lea este acel 4.
Ce spuneti de asta? Am rationat incorect?
Welcome to BitCell. Click here to register !