infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Adrian Diaconu din Februarie 18, 2007, 13:55:21



Titlul: 321 Reguli
Scris de: Adrian Diaconu din Februarie 18, 2007, 13:55:21
Aici puteţi discuta despre problema Reguli (http://infoarena.ro/problema/reguli).


Titlul: Răspuns: 321 Reguli
Scris de: Rus Cristian din Februarie 19, 2007, 21:01:29
la problema asta, am scos un O(N), dar am WA pe 3 teste, pe 1,4,5. E posibil ca diferenta dintre 2 numere sa nu intre in long long in cpp? Am mai patit sa nu iau puncte cu long long, dar sa iau maxim cu long, s-ar putea si din cauza asta sa iau doar 70?


Titlul: Răspuns: 321 Reguli
Scris de: Filip Cristian Buruiana din Februarie 19, 2007, 21:09:39
Citat
E posibil ca diferenta dintre 2 numere sa nu intre in long long in cpp?

NU


Titlul: Răspuns: 321 Reguli
Scris de: Andrei Grigorean din Februarie 20, 2007, 00:38:37
Da-ne cateva detalii despre cum rezolvi tu problema :)


Titlul: Răspuns: 321 Reguli
Scris de: Rus Cristian din Februarie 20, 2007, 18:48:04
Pentru inceput, marchez lungimea sirului cerut cu max. Parcurg in continuare sirul initial, determin pentru fiecare pozitie un si, iar pentru fiecare si, determin cu ce valoare ar trebui sa se potriveasca, din primele max elemente (care reprezinta sirul cerut de lungime minima). Daca se potriveste cu ce ar trebui sa se potriveasca, atunci nu fac nimic, dar daca nu se potriveste, atunci reactualizez max, cu indicele i pe care ma aflu...mai exact i-1...


Titlul: Răspuns: 321 Reguli
Scris de: Bogdan-Alexandru Stoica din Februarie 24, 2007, 23:46:04
pare ok solutia ta. sa ai grija, atunci cand reactualizezi maximul, la cazul in care S[ i ] este egal cu S[0], ca doar atunci Noul_Max = i-1. altfel mai cauti... daca ai facut asta, nu stiu ce sa zic. daca nu iti reuseste imi poti trimite sursa pe mail ([email protected])


Titlul: Răspuns: 321 Reguli
Scris de: David si Goliat din Martie 08, 2007, 19:15:02
Abia azi am citit algoritmul lui KMP si nu m-am pus sa fac problema asta . Totusi mi se pare gresita/incompleta solutia oficiala .
 Spre exemlpu , luam N=8 si sirul diferentelor 1 2 3 1 2 3 1 1  . Ajungem la L=3 . Aici r=2,c=2
 vectorul reprezentat de functia prefix va fi 
       Pi  0 0 0 1 2 3 4 1
 indice  1 2 3 4 5 6 7 8         
    conditiile vor fi  1. PiN-r=Pi6 >0  (adevarat)
                          2. (N-r) divizibil la (N-r-PiN-r) adica 6 divizibil la 3 (adevarat)
                          3  (N-r)/(N-r-PiN-r)=c adica 6/3 =2 (adevarat)   
  Si totusi  1 2 3 nu este o perioada a sirului ci 1 2 3 1 2 3 1 1 . N-am inteles eu  ceva ?   Eu zic ca trebuie verificate si elementele de la r+1 la N si comparate cu primele elemente . Adica PiN= N-L sau ceva de genu .   

LE : Spre ex am o sursa de 100 care da raspunsul
3
1
2
3
pt  datele de intrare
9
0
1
3
6
7
9
12
13
14


Titlul: Răspuns: 321 Reguli
Scris de: Filip Cristian Buruiana din Martie 08, 2007, 19:56:34
Ce zici tu este adevarat. Sursa mea returneaza rezultatul corect. E doar o mica scapare in articol :oops: Am modificat.


Titlul: Răspuns: 321 Reguli
Scris de: Sachelarie Bogdan din August 19, 2007, 19:46:59
             Aviz pascalisti - daca nu va intra in timp citirea incercati sa cititi numerele ca stringuri  :thumbdown:


Titlul: Răspuns: 321 Reguli
Scris de: Alexandru Pana din Octombrie 13, 2007, 14:35:40

  Si totusi  1 2 3 nu este o perioada a sirului ci 1 2 3 1 2 3 1 1 .

Nu cumva perioada e 1 2 3 1 2 3 1 ??


Titlul: Răspuns: 321 Reguli
Scris de: Filip Cristian Buruiana din Octombrie 13, 2007, 16:03:34
Pentru sirul
Cod:
1 2 3 1 2 3 1 1

perioada este chiar sirul insusi.


Titlul: Răspuns: 321 Reguli
Scris de: Stefan Istrate din Octombrie 13, 2007, 16:57:06
Sustin ideea lui recviem. Pentru un sir care are sirul diferentelor
Cod:
1 2 3 1 2 3 1 1
perioada minima este
Cod:
1 2 3 1 2 3 1
La fel obtin si cu o sursa de 100 de puncte si asa mi se pare si corect si daca fac "de mana". La momentul cand am scris sursa (parca in concurs) am implementat o alta idee decat cea din solutia oficiala, dar care se bazeaza tot pe KMP.


Titlul: Răspuns: 321 Reguli
Scris de: Alexandru Pana din Octombrie 13, 2007, 21:16:53
Pai 1 2 3 1 2 3 1 - perioada iar unul din capat este inceputul perioadei 2 .. este secventa mai mica decat sirul insusi iar eu iau doar 90 pcte :| am pus un program care afiseaza tot sirul, fara a mai calcula altceva si iau 10 puncte pe testul care pica la sursa de 90  :fighting:


Titlul: Răspuns: 321 Reguli
Scris de: Filip Cristian Buruiana din Octombrie 14, 2007, 10:47:18
Da, uitasem cum am definit eu perioada :shock:. In sirul
Cod:
1 2 3 1 2 3 1 1
perioada e intr-adevar
Cod:
1 2 3 1 2 3 1

Pentru recviem. Vezi cat iti da de exemplu pe testul
Cod:
4
5
6
8
11
Trebuie sa obtii
Cod:
3
1
2
3
Cred ca obtii 90 de puncte pentru ca nu iei in considerare ca perioada poate fi si sirul intreg.


Titlul: Răspuns: 321 Reguli
Scris de: Alexandru Pana din Octombrie 14, 2007, 12:42:33
Pai ala era bugul .. am pus perioada <= n si a mers  :yahoo:

Pe testul tau am
Cod:
3
1
2
3
:)


Titlul: Răspuns: 321 Reguli
Scris de: Cazacu Alexandru din Ianuarie 09, 2009, 18:55:01
Mi se par destul de ciudate testele la problema asta ... o sursa gresita care pe testul
  13
  4 6 8 9 11 13 15 16 18 20 22 23 25
afiseaza un sir de lungime 11, ia 100 de puncte ; iar alta sursa care cred ca este corecta (si afiseaza rezultatul corect pe testul de mai sus) ia doar 30 ptc. 


Titlul: Răspuns: 321 Reguli
Scris de: Codrea Marcel din Ianuarie 09, 2009, 19:33:41
Ar trebui să postezi la Îmbunătăţire teste, există un topic deschis pentru problema asta acolo.
Ca autor, e foarte greu să construieşti teste care să ia în calcul toate ideile care vin concurenţilor în timpul probei, multe dintre ele total greşite. Dacă o sursă greşită obţine punctaj maxim şi cele 10 teste sunt generate random înseamnă că în principiu ea va da răspunsuri incorecte pe mai puţin de 10% din cazurile posibile. Mie mi se pare că neajunsurile evaluării de azi îşi au originea nu în incapacitatea autorilor de a fabrica teste bune, ci în decizia antică, devenită tradiţie de a genera un număr mic de teste la o problemă.


Titlul: Răspuns: 321 Reguli
Scris de: Cosmin-Mihai Tutunaru din Martie 08, 2009, 22:11:34
Eu iau doar 70 pct..
Primesc W.A. pe testele 1, 4 si 5.
E nevoie de numere mari?


Titlul: Răspuns: 321 Reguli
Scris de: Dragos Oprica din Martie 09, 2009, 10:45:44
nu trebuie numere mari

trebuie sa folosesti long long, ai grija sa nu busesti aici


Titlul: Răspuns: 321 Reguli
Scris de: Cosmin-Mihai Tutunaru din Martie 10, 2009, 00:12:41
nu trebuie numere mari

trebuie sa folosesti long long, ai grija sa nu busesti aici

Nu cred k am cum sa busesc aici.
Am de tip long long si vectorul in care citesc sirul, cat si vectorul (a[]) in care retin diferentele dintre valorile elementelor de pe pozitii consecutive din sir.


Titlul: Răspuns: 321 Reguli
Scris de: Dragos Oprica din Martie 10, 2009, 07:53:54
nu trebuie numere mari

trebuie sa folosesti long long, ai grija sa nu busesti aici

Nu cred k am cum sa busesc aici.
Am de tip long long si vectorul in care citesc sirul, cat si vectorul (a[]) in care retin diferentele dintre valorile elementelor de pe pozitii consecutive din sir.

atunci s-ar mai putea sa uiti cazul cand tot sirul este solutia :wink:


Titlul: Răspuns: 321 Reguli
Scris de: Cosmin-Mihai Tutunaru din Martie 10, 2009, 08:37:39
nu trebuie numere mari

trebuie sa folosesti long long, ai grija sa nu busesti aici

Nu cred k am cum sa busesc aici.
Am de tip long long si vectorul in care citesc sirul, cat si vectorul (a[]) in care retin diferentele dintre valorile elementelor de pe pozitii consecutive din sir.

atunci s-ar mai putea sa uiti cazul cand tot sirul este solutia :wink:

Nici asta nu e problema..
Am trimis acum sa afisez intreg sirul a[]. Si primesc 10 pct (pe testul 9 - test pe care luam punctaj si cu sursa de 70.).


Titlul: Răspuns: 321 Reguli
Scris de: Dragos Oprica din Martie 10, 2009, 16:16:07
nu trebuie numere mari

trebuie sa folosesti long long, ai grija sa nu busesti aici

Nu cred k am cum sa busesc aici.
Am de tip long long si vectorul in care citesc sirul, cat si vectorul (a[]) in care retin diferentele dintre valorile elementelor de pe pozitii consecutive din sir.

atunci s-ar mai putea sa uiti cazul cand tot sirul este solutia :wink:

Nici asta nu e problema..
Am trimis acum sa afisez intreg sirul a[]. Si primesc 10 pct (pe testul 9 - test pe care luam punctaj si cu sursa de 70.).


inseamna ca gresesti altundeva, incearca sa verifici din nou daca determini corect sirul a[]