Afişează mesaje
|
Pagini: [1]
|
9
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva Infoarena Monthly / Răspuns: 020 Dinozaur
|
: Martie 25, 2013, 20:13:35
|
Da intr-adevar, nu stiu cum a aparut C=0 ala acolo....
Am luat 100 de puncte... Postez aici sursa, daca mai vrea sa o vada cineva:
#include <fstream> #include <cstring> using namespace std; ifstream f("dinozaur.in"); ofstream g("dinozaur.out");
int main(){
char T[100001]; long C[30]; long i,lung; bool ok=0;
f>>T; lung=strlen(T); if (lung>0){ for (i=1;i<=30;i++) C=0; for (i=0;i<lung;i++){ C[T-96]++; if (C[T-96]>=2){ ok=1; break; } }
if (ok) g<<1<<"\n"; else g<<0<<"\n"; } else g<<0<<"\n";
return 0; }
|
|
|
13
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva Infoarena Monthly / Răspuns: 020 Dinozaur
|
: Martie 25, 2013, 19:59:08
|
Am luat 0 puncte pe sursa asta dar nu inteleg ce nu e bine... Poate secventa nu poate fi si de 1 caracter... Va pun sursa, cine poate si vrea sa ma ajute  #include <fstream> #include <iostream> #include <cstring> using namespace std; ifstream f("dinozaur.in"); ofstream g("dinozaur.out"); int main(){ char T[100001]; long C[30]; long i,lung; bool ok=0; f>>T; lung=strlen(T); for (i=1;i<=30;i++) C =0; for (i=0;i<=strlen(T);i++){ C[T-96]++; if (C[T-96]>=2){ ok=1; break; } }
if (ok) g<<1<<"\n"; else g<<0<<"\n";
return 0; } 
|
|
|
14
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva Infoarena Monthly / Răspuns: 020 Dinozaur
|
: Martie 25, 2013, 15:58:20
|
Tocmai despre asta vorbeam, formulare ambiguu, nu se precizeaza lungimea minima a unei secvente, in acest caz in care o secventa poate fii de lungime 1 problema are o rezolvare penibila, pur si simplu verifici cu un vector unde memorezi de cate ori apare fiecare litera in functie de codul sau ASCII si astfel daca in vector gasesti vreun numar >=2 atunci scrii 1 altfel scrii 0... Si totul dintr-o singura parcurgere => O(n) => undeva la 0.07 secunde
|
|
|
|