Detalii evaluare #18951738

Rezumat problemă

#1027 Cool

Se consideră un șir A format din N elemente naturale nenule. Numim secvență de lungime K a șirului A orice succesiune de elemente consecutive din șir de forma Ai, Ai+1 ,…, Ai+K-1.

O secvență o numim secvență cool dacă elementele care o compun sunt distincte și pot fi rearanjate astfel încât să alcătuiască o secvență continuă de numere consecutive.
De exemplu, considerând șirul A=(3,1,6,8,4,5,6,7,4,3,4), atunci secvența (8,4,5,6,7) este o secvență cool deoarece conține elemente distincte ce pot fi rearanjate astfel încât să alcătuiască șirul de numere consecutive 4,5,6,7,8, pe când secvențele (4,3,4), (6,7,4,3) nu sunt considerate secvențe cool.

Fiind dat un şir de N numere naturale nenule se cer următoarele:
1. Pentru o valoare dată K să se verifice dacă secvența A1, A2 ,…, AK este secvență cool. Dacă secvența este cool, atunci se va afișa cea mai mare valoare ce aparține secvenței. Dacă secvența nu este cool, atunci se va afișa numărul elementelor distincte din secvența A1, A2 ,…, AK , adică numărul elementelor care apar o singură dată.
2. Lungimea maximă a unei secvențe cool și numărul secvențelor cool de lungime maximă.

Detalii

Problema Cool Operații I/O cool.in/cool.out
Limita timp 0.5 secunde Limita memorie Total: 2 MB / Stivă 1 MB
Id soluție #18951738 Utilizator unknown - (unknown_account)
Fișier cool.cpp Dimensiune 1.72 KB
Data încărcării 22 Noiembrie 2019, 11:55 Scor / rezultat Eroare de compilare

Evaluare


Mesaj compilare

cool.cpp:3:2: error: stray '\310' in program
  Colegiul Național „Tudor Vladimirescu”, Târgu Jiu 

  ^
cool.cpp:3:2: error: stray '\233' in program
cool.cpp:3:2: error: stray '\342' in program
cool.cpp:3:2: error: stray '\200' in program
cool.cpp:3:2: error: stray '\236' in program
cool.cpp:3:2: error: stray '\342' in program
cool.cpp:3:2: error: stray '\200' in program
cool.cpp:3:2: error: stray '\235' in program
cool.cpp:3:2: error: stray '\303' in program
cool.cpp:3:2: error: stray '\242' in program
cool.cpp:6:1: error: stray '\310' in program
 Cerința 1.     ( 20 puncte)

 ^
cool.cpp:6:1: error: stray '\233' in program
cool.cpp:7:1: error: stray '\304' in program
 Printr-o simplă verificare a frecvenței de apariție a primelor k numere se obține răspunsul așteptat.

 ^
cool.cpp:7:1: error: stray '\203' in program
cool.cpp:7:1: error: stray '\310' in program
cool.cpp:7:1: error: stray '\233' in program
cool.cpp:7:1: error: stray '\310' in program
cool.cpp:7:1: error: stray '\233' in program
cool.cpp:7:1: error: stray '\310' in program
cool.cpp:7:1: error: stray '\233' in program
cool.cpp:7:1: error: stray '\304' in program
cool.cpp:7:1: error: stray '\203' in program
cool.cpp:7:1: error: stray '\310' in program
cool.cpp:7:1: error: stray '\231' in program
cool.cpp:9:1: error: stray '\310' in program
 Cerința 2.     

 ^
cool.cpp:9:1: error: stray '\233' in program
cool.cpp:11:1: error: stray '\310' in program
 O soluție brute-force obține 25 p. 

 ^
cool.cpp:11:1: error: stray '\233' in program
cool.cpp:11:1: error: stray '\310' in program
cool.cpp:11:1: error: stray '\233' in program
cool.cpp:12:1: error: stray '\310' in program
 O soluție bazată pe set(stl) obține 40-50 p.

 ^
cool.cpp:12:1: error: stray '\233' in program
cool.cpp:12:1: error: stray '\304' in program
cool.cpp:12:1: error: stray '\203' in program
cool.cpp:12:1: error: stray '\310' in program
cool.cpp:12:1: error: stray '\233' in program
cool.cpp:14:1: error: stray '\310' in program
 Soluția 1.  ( 80 puncte)    (Eugen Nodea)

 ^
cool.cpp:14:1: error: stray '\233' in program
cool.cpp:15:2: error: stray '\310' in program
  Rezolvarea cerinței necesită câteva observații.

  ^
cool.cpp:15:2: error: stray '\233' in program
cool.cpp:15:2: error: stray '\304' in program
cool.cpp:15:2: error: stray '\203' in program
cool.cpp:15:2: error: stray '\303' in program
cool.cpp:15:2: error: stray '\242' in program
cool.cpp:15:2: error: stray '\310' in program
cool.cpp:15:2: error: stray '\233' in program
cool.cpp:16:1: error: stray '\310' in program
 Fie secvența ce conține k numere consecutive distincte: 

 ^
cool.cpp:16:1: error: stray '\233' in program
cool.cpp:16:1: error: stray '\310' in program
cool.cpp:16:1: error: stray '\233' in program
cool.cpp:19:1: error: stray '\304' in program
 Observăm că:

 ^
cool.cpp:19:1: error: stray '\203' in program
cool.cpp:19:1: error: stray '\304' in program
cool.cpp:19:1: error: stray '\203' in program
cool.cpp:22:1: error: stray '\310' in program
 3) relația 1)  este adevărată indiferent de ordinea elementelor

 ^
cool.cpp:22:1: error: stray '\233' in program
cool.cpp:22:1: error: stray '\304' in program
cool.cpp:22:1: error: stray '\203' in program
cool.cpp:22:1: error: stray '\304' in program
cool.cpp:22:1: error: stray '\203' in program
cool.cpp:23:1: error: stray '\310' in program
 Așadar,

 ^
cool.cpp:23:1: error: stray '\231' in program
cool.cpp:24:1: error: stray '\310' in program
 - pentru orice secvența care începe pe poziția i si se termina pe poziția j se va determina minimul si maximul

 ^
cool.cpp:24:1: error: stray '\233' in program
cool.cpp:24:1: error: stray '\303' in program
cool.cpp:24:1: error: stray '\256' in program
cool.cpp:24:1: error: stray '\310' in program
cool.cpp:24:1: error: stray '\233' in program
cool.cpp:24:1: error: stray '\310' in program
cool.cpp:24:1: error: stray '\233' in program
cool.cpp:25:1: error: stray '\310' in program
 - secvența este cool daca respecta relațiile 1) si 2)

 ^
cool.cpp:25:1: error: stray '\233' in program
cool.cpp:25:1: error: stray '\310' in program
cool.cpp:25:1: error: stray '\233' in program
cool.cpp:26:1: error: stray '\304' in program
 Astfel, complexitatea rezolvării subpunctului b) poate fi redusă la O(N*k) amortizat.

 ^
cool.cpp:26:1: error: stray '\203' in program
cool.cpp:26:1: error: stray '\304' in program
cool.cpp:26:1: error: stray '\203' in program
cool.cpp:28:1: error: stray '\310' in program
 Soluția 2.  ( 80 puncte)    (Constantin Galatan)

 ^
cool.cpp:28:1: error: stray '\233' in program
cool.cpp:29:2: error: stray '\310' in program
  Pentru secvența curentă cuprinsă între pozițiile i și j, se menține un șir de contoare pentru valorile din secvență. La adăugarea unui nou element a[j] în secvență se incrementează valoarea contorului corespunzător: cnt[a[j]]++, iar la eliminarea unui element a[i] din secvență, contorul se decrementează: cnt[a[i]]--.  Se rețin de asemenea maximul și minimul valorilor din secvență în amax și amin. La fiecare pas se verifică dacă amax – amin == j – i și că nicio valoare din secvență nu are contorul mai mare decât 1. Complexitatea soluției este O(n^2)

  ^
cool.cpp:29:2: error: stray '\233' in program
cool.cpp:29:2: error: stray '\304' in program
cool.cpp:29:2: error: stray '\203' in program
cool.cpp:29:2: error: stray '\304' in program
cool.cpp:29:2: error: stray '\203' in program
cool.cpp:29:2: error: stray '\303' in program
cool.cpp:29:2: error: stray '\256' in program
cool.cpp:29:2: error: stray '\310' in program
cool.cpp:29:2: error: stray '\233' in program
cool.cpp:29:2: error: stray '\310' in program
cool.cpp:29:2: error: stray '\231' in program
cool.cpp:29:2: error: stray '\310' in program
cool.cpp:29:2: error: stray '\233' in program
cool.cpp:29:2: error: stray '\310' in program
cool.cpp:29:2: error: stray '\231' in program
cool.cpp:29:2: error: stray '\310' in program
cool.cpp:29:2: error: stray '\233' in program
cool.cpp:29:2: error: stray '\304' in program
cool.cpp:29:2: error: stray '\203' in program
cool.cpp:29:2: error: stray '\304' in program
cool.cpp:29:2: error: stray '\203' in program
cool.cpp:29:2: error: stray '\303' in program
cool.cpp:29:2: error: stray '\256' in program
cool.cpp:29:2: error: stray '\310' in program
cool.cpp:29:2: error: stray '\233' in program
cool.cpp:29:2: error: stray '\304' in program
cool.cpp:29:2: error: stray '\203' in program
cool.cpp:29:2: error: stray '\304' in program
cool.cpp:29:2: error: stray '\203' in program
cool.cpp:29:2: error: stray '\304' in program
cool.cpp:29:2: error: stray '\203' in program
cool.cpp:29:2: error: stray '\310' in program
cool.cpp:29:2: error: stray '\233' in program
cool.cpp:29:2: error: stray '\304' in program
cool.cpp:29:2: error: stray '\203' in program
cool.cpp:29:2: error: stray '\304' in program
cool.cpp:29:2: error: stray '\203' in program
cool.cpp:29:2: error: stray '\310' in program
cool.cpp:29:2: error: stray '\233' in program
cool.cpp:29:2: error: stray '\310' in program
cool.cpp:29:2: error: stray '\231' in program
cool.cpp:29:2: error: stray '\310' in program
cool.cpp:29:2: error: stray '\233' in program
cool.cpp:29:2: error: stray '\304' in program
cool.cpp:29:2: error: stray '\203' in program
cool.cpp:29:2: error: stray '\303' in program
cool.cpp:29:2: error: stray '\256' in program
cool.cpp:29:2: error: stray '\310' in program
cool.cpp:29:2: error: stray '\231' in program
cool.cpp:29:2: error: stray '\304' in program
cool.cpp:29:2: error: stray '\203' in program
cool.cpp:29:2: error: stray '\304' in program
cool.cpp:29:2: error: stray '\203' in program
cool.cpp:29:2: error: stray '\342' in program
cool.cpp:29:2: error: stray '\200' in program
cool.cpp:29:2: error: stray '\223' in program
cool.cpp:29:2: error: stray '\342' in program
cool.cpp:29:2: error: stray '\200' in program
cool.cpp:29:2: error: stray '\223' in program
cool.cpp:29:2: error: stray '\310' in program
cool.cpp:29:2: error: stray '\231' in program
cool.cpp:29:2: error: stray '\304' in program
cool.cpp:29:2: error: stray '\203' in program
cool.cpp:29:2: error: stray '\310' in program
cool.cpp:29:2: error: stray '\233' in program
cool.cpp:29:2: error: stray '\304' in program
cool.cpp:29:2: error: stray '\203' in program
cool.cpp:29:2: error: stray '\303' in program
cool.cpp:29:2: error: stray '\242' in program
cool.cpp:29:2: error: stray '\310' in program
cool.cpp:29:2: error: stray '\233' in program
cool.cpp:1:1: error: 'Problema' does not name a type
 Problema  1.  Cool                    

 ^

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema Cool face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.