#1655
Platou
Fiind dat un şir de numere, denumim secvenţă a acestuia o parte dintre termenii şirului luaţi de pe poziţii consecutive. Denumim platou al acestui şir o secvenţă formată din valori identice. Lungimea unui platou este egală cu numărul de elemente care îl formează.
De exemplu, în şirul de numere 1 1 1 7 7 3 4 4 4 7 7
avem:
1 1 1
şi 4 4 4
ambele având lungimea 3
;7 7
(cel care începe în poziţia a patra) şi 7 7
(cel care începe pe poziţia a zecea), ambele având lungimea 2
;3
care are lungimea 1
.În schimb nu avem platoul 7 7 7 7
deoarece cele patru elemente egale cu 7
nu sunt pe poziţii consecutive!
Se dă un şir de n numere. Fiecare dintre aceste numere aparţine intervalului [0,1000000]
. Asupra acestui şir se pot efectua o singură dată următoarele două operaţiuni în această ordine:
De exemplu, dacă avem următorul şir inițial: 2 2 5 0 5 8 8 8 4 9 9 9 0 0 2 2 8
extragem platoul 2 2
format din elementele aflate în penultima şi antepenultima poziţie şi obţinem şirul: 2 2 5 0 5 8 8 8 4 9 9 9 0 0 8
În şirul rezultat inserăm platoul 2 2
(pe care l-am extras în pasul anterior) în poziţia a doua şi obţinem şirul: 2 2 2 2 5 0 5 8 8 8 4 9 9 9 0 0 8
Să se scrie un program care pentru un şir dat determină:
Concursul Interjudeţean de Matematică şi Informatică Grigore Moisil, 2016
Problema | Platou | Operații I/O |
platou.in /platou.out
|
---|---|---|---|
Limita timp | 1.5 secunde | Limita memorie |
Total: 64 MB
/
Stivă 64 MB
|
Id soluție | #17815260 | Utilizator | |
Fișier | platou.cpp | Dimensiune | 1.00 KB |
Data încărcării | 21 Octombrie 2019, 13:53 | Scor / rezultat | Eroare de compilare |
platou.cpp:4:11: error: variable 'std::ifstream f' has initializer but incomplete type ifstream f("platou.in"); ^ platou.cpp:5:11: error: variable 'std::ofstream g' has initializer but incomplete type ofstream g("platou.out"); ^ platou.cpp:6:27: error: size of array 'v' is too large long long i,V,v[1000000001],s[1000000001],lsecv,lmax,n,el,m,j,smax; ^ platou.cpp:6:41: error: size of array 's' is too large long long i,V,v[1000000001],s[1000000001],lsecv,lmax,n,el,m,j,smax; ^ platou.cpp: In function 'int main()': platou.cpp:12:13: error: 'v' was not declared in this scope {f>>v[i]; ^ platou.cpp:14:18: error: 's' was not declared in this scope {lsecv++;s[i]++;} ^ platou.cpp:16:18: error: 's' was not declared in this scope {lsecv=1;s[i]=1;} ^ platou.cpp:33:9: error: 'v' was not declared in this scope m=0;v[0]=-1;el=1; ^ platou.cpp:40:13: error: 's' was not declared in this scope s[m]=1; ^ platou.cpp:43:13: error: 's' was not declared in this scope s[m]++; ^ platou.cpp:47:28: error: 's' was not declared in this scope if(v[i]==v[j]&&s[i]+s[j]>smax) ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Platou face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
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ă.