Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 689 Carti  (Citit de 2796 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
astronomy
Nu mai tace
*****

Karma: 204
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« : Aprilie 06, 2008, 14:32:00 »

Aici puteţi discuta despre problema Carti.
Memorat
tm_radu
De-al casei
***

Karma: 16
Deconectat Deconectat

Mesaje: 140



Vezi Profilul
« Răspunde #1 : Aprilie 08, 2008, 15:46:45 »

Exista cazuri particulare la problema asta? Iau doar 80 de puncte si imi da corect  pe testele generate de mine.  Think
Memorat

Daca nu merge o preblema, depaneaz-o, si abia apoi arunci calculatoru pe geam
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #2 : Aprilie 08, 2008, 17:04:00 »

S-a reevaluat. 2 teste erau gresite deoarece N nu corespundea cu numarul de carti de pe masa. Ne cerem scuze pentru neplaceri.
Eu cand citeam, citeam cu fgets, pentru mine nu conta N-ul acela, si de aceea acea eroare e trecut neobservata.
Acum iei 100 Wink.
Memorat
tm_radu
De-al casei
***

Karma: 16
Deconectat Deconectat

Mesaje: 140



Vezi Profilul
« Răspunde #3 : Aprilie 08, 2008, 18:04:16 »

 Winner 1st place Mersi Smile
Memorat

Daca nu merge o preblema, depaneaz-o, si abia apoi arunci calculatoru pe geam
zbarni
Strain


Karma: 3
Deconectat Deconectat

Mesaje: 23



Vezi Profilul
« Răspunde #4 : Aprilie 20, 2008, 22:59:09 »

Care-i smecheria?  Brick wall Fighting iau numai 20 de puncte... personal procedez asa la fiecare configuratie: qsort, ca sa fie in sir, dupa care iau un vector 'seged' cu toate elementele=0; un for pana la m, si pentru fiecare numar dau 1, sau seged[ i ]+=i-1 daca seged[ i ]<k, dupa care seged[i-1]=0; in final numar numerele nenule, si daca %2==0 castiga bob ... Este ceva in neregula cu ideea? (poate nu am inteles bine problema Brick wall
Cod:
   1. #include<fstream>  
   2. #include<cstdlib> 
   3. using namespace std; 
   4. ifstream be ("carti.in"); 
   5. ofstream ki ("carti.out"); 
   6. typedef struct 
   7.  { 
   8.   int kk, mm; 
   9.  } S; 
  10. S c[15]; 
  11.  
  12. int compare (const void*a,const void*b) 
  13.     { 
  14.      return (*(int*)a-*(int*)b); 
  15.     } 
  16. int a[15][15]; 
  17. int main() 
  18.     { 
  19.      int m,k,n,i,j,s,SZ,seged[15]; 
  20.      char x; 
  21.      be>>n; 
  22.      for (i=0;i<n;i++) 
  23.     { 
  24.      be>>m>>k; 
  25.      c[i].kk=k; c[i].mm=m; 
  26.      for (j=0;j<m;j++) 
  27.        { 
  28.     be>>x; 
  29.     if (x>='A') 
  30.       { 
  31.        switch (x) 
  32.          { 
  33.           case 'A': { a[i][j]=1;break; } 
  34.           case 'J': { a[i][j]=11; break; } 
  35.           case 'Q': { a[i][j]=12; break; } 
  36.           case 'K': { a[i][j]=13; break; } 
  37.          } 
  38.       } 
  39.     else 
  40.       if (x=='1') 
  41.         {a[i][j]=10; be>>x;} 
  42.       else 
  43.         a[i][j]=x-48; 
  44.        } 
  45.     } 
  46.      be.close(); 
  47.      for (i=0;i<n;i++) 
  48.        { 
  49.     m=c[i].mm; k=c[i].kk; 
  50.     qsort(a[i],m,sizeof(int),compare); 
  51.     SZ=0; 
  52.     for (j=0;j<15;j++) 
  53.        seged[j]=0; 
  54.     for (j=0;j<m;j++) 
  55.      { 
  56.       seged[a[i][j]]=1; 
  57.       if (seged[a[i][j]-1]<k && seged[a[i][j]-1]>0 && j) 
  58.         { 
  59.           seged[a[i][j]]+=seged[a[i][j]-1]; 
  60.          seged[a[i][j]-1]=0; 
  61.         } 
  62.      } 
  63.      for (j=0;j<m;j++) 
  64.          if (seged[a[i][j]]>0) 
  65.            SZ++; 
  66.      if (SZ%2==0) 
  67.       ki<<"Bob"; 
  68.      else 
  69.       ki<<"Alice"; 
  70.      if (i!=n-1) 
  71.       ki<<"\n"; 
  72.     } 
  73.      ki<<"\n"; 
  74.      ki.close(); 
  75.      return 0; 
  76.    } 
ultima parte

eventual un test puteti sa aratati? in afara de primul si 8.
« Ultima modificare: Aprilie 21, 2008, 09:49:00 de către Bogdan Tataroiu » Memorat
amadaeus
Client obisnuit
**

Karma: 28
Deconectat Deconectat

Mesaje: 93



Vezi Profilul
« Răspunde #5 : Aprilie 24, 2008, 11:42:54 »

Probabil ca scapi din vedere anumite cazuri. Solutia oficiala studiaza toate situatiile posibile de joc si este descrisa aici.
Memorat

"one of these days I'm going to cut you into little pieces..."
xtreme
De-al casei
***

Karma: -26
Deconectat Deconectat

Mesaje: 118



Vezi Profilul
« Răspunde #6 : Septembrie 11, 2009, 13:03:34 »

Ar fi trebuit sa se evidentieze recursitivitatea in solutie si pentru a transforma solutia aceea intr-una valida mai trebuie aduagat ceva cod...e bine ca in solutiile de la concursul de la Grigore Moisil se lasa aprope tot timpul pentru cititor obligatia de a contribui pentru a rezolva problema dar uneori absenta unor informatii poate duce in eroare cititorul... wink
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #7 : Martie 14, 2011, 20:24:52 »

Ce trebuie optimizat pe langa solutia oficiala ca sa intre in timp? Am vazut ca si altii aveau TLE pe aceleasi teste  Think
Memorat
ctlin04
Nu mai tace
*****

Karma: 23
Deconectat Deconectat

Mesaje: 207



Vezi Profilul
« Răspunde #8 : Decembrie 08, 2012, 21:11:40 »

Poate sa-mi dea cineva un test pe care sa nu mearga ideea mea:
Daca numarul maxim de carti este k atunci impart cartile in siruri de numere consecutive, apoi fiecare sir il sectionez in blocuri de k numere, dupa aceasta aplic jocul NIM.
Exemplu:
7 2
10 11 1 2 3 8 9
secventele consecutive sunt
1 2 3 si
8 9 10 11
blocurile atunci vor fi
1 2
3
8 9
10 11
respectiv daca fac xor intre numarul de carti din gramezi obtin un numar mai mare ca 0, respectiv Alice cistiga jocul. Confused
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #9 : Decembrie 08, 2012, 22:21:02 »

Un test nu prea am timp sa-ti caut acum, dar e suficient sa realizezi ca NIM-ul descris de tine nu este echivalent cu jocul original.

Presupunem ca ai o gramada de 3 numere : 3 4 5. Sa zicem ca in jocul original iei numarul 4. La tine, s-ar traduce prin faptul ca din gramada cu 3 elemente iti mai raman 2 elemente. Dar asta nu e adevarat, fiindca nu le poti lua impreuna la o eventuala mutare. De fapt tu iei un element din gramada, dupa care o spargi in 2 gramezi de cate un element, iar asta nu respecta regulile NIM-ului.

Memorat
vendetta
De-al casei
***

Karma: 72
Deconectat Deconectat

Mesaje: 122



Vezi Profilul
« Răspunde #10 : Decembrie 08, 2012, 22:47:57 »

Uite aici un test pe care pica sursa ta
Cod:
.in: 
1
8 2
2 3 4 5 6 7 8 9

raspunsul e Alice
Memorat
ctlin04
Nu mai tace
*****

Karma: 23
Deconectat Deconectat

Mesaje: 207



Vezi Profilul
« Răspunde #11 : Decembrie 09, 2012, 15:08:20 »

Ms mult pentru explicatii si pentru test  Ok
Am facut acum dupa solutia oficiala, dar tot iau incorect pe doua teste, stie cineva care ar fi cauza ?
« Ultima modificare: Decembrie 09, 2012, 22:23:14 de către catalin » Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines