#1087
Cuvinte4
Se consideră un şir de cuvinte separate două câte două printr-un spaţiu. Fiecare cuvânt este caracterizat prin numărul de ordine care reprezintă poziţia lui în şirul de cuvinte (primul cuvânt are numărul de ordine 1
). Unui cuvânt i se pot aplica în mod repetat următoarele transformări: primul caracter al cuvântului (cel mai din stânga) se şterge de acolo şi se adaugă după ultimul caracter din cuvânt. Astfel, dintr-un cuvânt s
cu k
caractere se pot obţine alte k-1
cuvinte pe care le numim cuvinte obţinute din transformarea cuvântului s
. De exemplu, dintr-un cuvânt format din 4
caractere c1c2c3c4
, cuvintele obţinute prin transformarea lui sunt: c2c3c4c1
, c3c4c1c2
, c4c1c2c3
.
Se caută în şirul de cuvinte prima pereche de cuvinte vecine (a,b)
, în care al doilea cuvânt din pereche (cuvântul b)
este identic cu un cuvânt obţinut din transformarea lui a
. Dacă există o astfel de pereche, se şterge cuvântul b
din şir. Prin ştergerea cuvântului b
din şir, acesta va avea mai puţin cu un cuvânt! Se repetă operaţia de căutare de mai sus până când în şirul rămas nu mai există o pereche (a,b)
de cuvinte vecine, astfel încât b
să fie obţinut prin transformarea lui a
.
Se ştie că pe parcursul modificărilor, cuvintele nu-şi schimbă numerele de ordine pe care le-au avut iniţial.
Scrieţi un program care să citească şirul de cuvinte şi să afişeze:
a) numărul de ordine al primului cuvânt şters sau valoarea 0
în cazul în care nu se şterge niciun cuvânt
b) numerele de ordine ale cuvintelor rămase după finalizarea operaţiilor de modificare.
OJI 2010, Clasa a VII-a
Problema | Cuvinte4 | Operații I/O |
cuvinte4.in /cuvinte4.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #22835654 | Utilizator | |
Fișier | cuvinte4.cpp | Dimensiune | 977 B |
Data încărcării | 07 Mai 2020, 23:43 | Scor / rezultat | Eroare de compilare |
cuvinte4.cpp: In function 'void transforma(char*)': cuvinte4.cpp:9:20: error: 'strlen' was not declared in this scope for(i=0;i<strlen(s);i++) ^ cuvinte4.cpp:10:21: error: 'strncat' was not declared in this scope { strncat(s,s,1); ^ cuvinte4.cpp:11:23: error: 'strcpy' was not declared in this scope strcpy(s,s+1); ^ cuvinte4.cpp: In function 'int verifica(unsigned int, unsigned int)': cuvinte4.cpp:20:22: error: 'strcmp' was not declared in this scope {if (strcmp(x[j],y[i])==0) return 1;} ^ cuvinte4.cpp: In function 'int main()': cuvinte4.cpp:30:1: error: 'ifstream' was not declared in this scope ifstream f("cuvinte4.in"); ^ cuvinte4.cpp:30:1: note: suggested alternative: In file included from /usr/include/c++/4.8/ios:38:0, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from cuvinte4.cpp:1: /usr/include/c++/4.8/iosfwd:157:34: note: 'std::ifstream' typedef basic_ifstream<char> ifstream; ^ cuvinte4.cpp:30:10: error: expected ';' before 'f' ifstream f("cuvinte4.in"); ^ cuvinte4.cpp:31:1: error: 'ofstream' was not declared in this scope ofstream g("cuvinte4.out"); ^ cuvinte4.cpp:31:1: note: suggested alternative: In file included from /usr/include/c++/4.8/ios:38:0, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from cuvinte4.cpp:1: /usr/include/c++/4.8/iosfwd:160:34: note: 'std::ofstream' typedef basic_ofstream<char> ofstream; ^ cuvinte4.cpp:31:10: error: expected ';' before 'g' ofstream g("cuvinte4.out"); ^ cuvinte4.cpp:32:1: error: 'f' was not declared in this scope f.get(s,255); ^ cuvinte4.cpp:33:16: error: 'strtok' was not declared in this scope p=strtok(s," !"); ^ cuvinte4.cpp:35:20: error: 'strcpy' was not declared in this scope { strcpy(x[i++],p); ^ cuvinte4.cpp:44:29: error: 'strlen' was not declared in this scope if (verifica(j,strlen(x[i])-1)) ^ cuvinte4.cpp:46:23: error: 'strcpy' was not declared in this scope {strcpy(x[t],x[t+1]); ^ cuvinte4.cpp:52:8: warning: the address of 'poz' will always evaluate as 'true' [-Waddress] if (poz) g<<prima<<"\n"; else g<<"0"<<"\n"; ^ cuvinte4.cpp:52:10: error: 'g' was not declared in this scope if (poz) g<<prima<<"\n"; else g<<"0"<<"\n"; ^ cuvinte4.cpp:52:31: error: 'g' was not declared in this scope if (poz) g<<prima<<"\n"; else g<<"0"<<"\n"; ^ cuvinte4.cpp:54:2: error: 'g' was not declared in this scope g<<poz[j]<<" "; ^ cuvinte4.cpp:57:1: error: 'g' was not declared in this scope g.close(); ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Cuvinte4 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ă.