infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Airinei Adrian din Aprilie 06, 2008, 14:31:37



Titlul: 688 Patrat
Scris de: Airinei Adrian din Aprilie 06, 2008, 14:31:37
Aici puteţi discuta despre problema Patrat (http://infoarena.ro/problema/patrat).


Titlul: Răspuns: 688 Patrat
Scris de: Popa-Matei Mihai din Mai 06, 2008, 20:19:46
este un lucru ce nu inteleg ... trebuie afisate numerele care au cel putin 2 moduri de scriere ca suma de patrate sau cele care au doar 2 moduri (in enunt scrie cel putin 2 moduri iar la date de iesire scrie 2 moduri) ... sau nu am inteles eu bine... ?


Titlul: Răspuns: 688 Patrat
Scris de: gaboru corupt din Mai 06, 2008, 20:48:29
doar cele care au doua moduri :)


Titlul: Răspuns: 688 Patrat
Scris de: Andrei Misarca din Mai 06, 2008, 20:51:23
Io le-am afisat pe alea care se pot scrie in cel putin doua moduri si am luat 100  :)


Titlul: Răspuns: 688 Patrat
Scris de: Vlad Schnakovszki din Februarie 19, 2009, 10:25:26
Ce are mai special ultimul test ? Iau 90 de puncte si la ultimul incorect  :-k...


Titlul: Răspuns: 688 Patrat
Scris de: gaboru corupt din Februarie 19, 2009, 15:54:07
ai tratat cazut in care nu gasesti nicio pereche de numere care sa respecte probprietatea?...

Citat
In cazul in care intre x si y nu exista niciun numar avand proprietatea ceruta, in fisier se va scrie doar numarul 0.


Titlul: Răspuns: 688 Patrat
Scris de: Vlad Schnakovszki din Februarie 19, 2009, 18:20:11
Tratat ... Nu era de la aia dar ms oricum  :ok:
P.S.: Pentru cei care pica ultimul test (am vazut ca nu sunt singurul), incercati cel mai defavorabil caz :)


Titlul: Răspuns: 688 Patrat
Scris de: Dinu Vladimir din Martie 13, 2009, 21:08:23
mie imi ies exemplele date de iei si cateva exemple de-ale mele.
dar cand am trimis sursa mi-au dat doar 10 p  :angry:
puteti sa mai dati si alte exemple va rog ?


Titlul: Răspuns: 688 Patrat
Scris de: Vladimir Oltean din Martie 16, 2009, 14:11:01
 ??? ??? sursa mea foloseste 3 int-uri si 2 bool-uri ca variabile. De unde am 200 de kile de memorie folosita?  ???


Titlul: Răspuns: 688 Patrat
Scris de: Dan H Alexandru din Martie 22, 2009, 14:45:27
 ](*,) 
Programul meu e prea incet
Idei???
P.S.:Lucrez in Pascal


Titlul: Răspuns: 688 Patrat
Scris de: A Cosmina - vechi din August 03, 2009, 00:56:45
Am nevoie de putin ajutor la problema asta, iau TLE pe toate testele. Am impresia ca-mi intra intr-o bucla infinita, dar nu ma prind unde  :-s:

Cod:
for (i=1;i<=20000;i++)
        ok[i]=0;
    for (i=1;i<=sqrt(20000);i++) 
        for (j=i+1;j<=sqrt(20000);j++)
            if (i*i+j*j<=20000) ok[i*i+j*j]=1;
    for (i=X;i<=Y;i++)
        if (ok[i]==1) g<<i<<endl;


Titlul: Răspuns: 688 Patrat
Scris de: Gabriel Bitis din August 03, 2009, 07:36:20
Functia sqrt() mananca ceva timp si tu o apelezi cam de multe ori. Incearca sa retii valoarea intr'o variabila, inainte de for(), si sa parcurgi pana la aia. Sau ar mai merge sa pui asa :
Cod:
for(i = 1; i * i <= 20000; i++)


Titlul: Răspuns: 688 Patrat
Scris de: Simoiu Robert din Ianuarie 02, 2010, 18:49:02
Buna. Am vazut pe solutia oficiala http://infoarena.ro/grigore-moisil-2008/solutii o solutie gresita. Acel algoritm afla numerele care se pot scrie ca suma de 2 patrate ,care au minimum o combinatie. In problema se cer toate nr. care se pot scrie ca si o combinatie de 2 patrate, deci nr. 26 nu este bun. Daca o sa faceti dupa acel algoritm o sa observati ca pe 26 si multe alte numere le afiseaza. Eu zic asa: unde scrie asta:
Cod:
daca i * i + j * j <= 20000
          ok[i * i + j * j] = true
Sa arate asa:
Cod:
daca i * i + j * j <= 20000
            ++ok[i * i + j * j]
Iar ok sa fie de tip short. Iar ultimul pentru o sa verifice daca ok[]<1. Daca este mai mare atunci este solutie.Daca nu nu este!


Titlul: Răspuns: 688 Patrat
Scris de: Savulescu Roxana din Aprilie 04, 2011, 22:40:54
Exact asa am facut si eu problema.Am facut un vector in care numaram cate sume de patrate imi dau numerele din intervalul (x,y).
Apoi parcurgeam din nou vectorul si le afisam pe cele care erai >=2.
Dar iau 40 de puncte si chiar nu inteleg de ce.Sugestii?


Titlul: Răspuns: 688 Patrat
Scris de: Mihai Visuian din Decembrie 29, 2011, 11:44:24
cum se poate verifica pe biti daca un numar e patrat perfect?
eu stiam
Cod:
bool patrat(int n)
{
return (n&(n-1))==0;
dar nu imi da, numai pentru unele patrate.


Titlul: Răspuns: 688 Patrat
Scris de: Simoiu Robert din Decembrie 29, 2011, 11:55:40
Nup, aia e pentru putere a lui 2, pentru patrat perfect nu am facut niciodata, dar o sa ma uit :).


Titlul: Răspuns: 688 Patrat
Scris de: Petru Trimbitas din Decembrie 29, 2011, 12:10:58
cum se poate verifica pe biti daca un numar e patrat perfect?
eu stiam
Cod:
bool patrat(int n)
{
return (n&(n-1))==0;
dar nu imi da, numai pentru unele patrate.
Nu se poate verifica daca un numar e patrat perfect be biti. Incearca sa abordezi problema invers :)