Afişează mesaje
|
Pagini: [1]
|
8
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Sudoku
|
: Iulie 17, 2014, 12:17:17
|
bogdanbobob97 ) Deci fii atent, Am facut si eu problema si din cite ai vazut din pm, meu am facut-o un pic diferit,, Adica sper ca ai observat ca nu m-am folosit de vectorul de aparitii.. DECI> Tu ai declarat vectorul de aparitii la nivel global,, daca o faci local, in procedura problema e OK !!!! Pentru ca la fiecare back, valorile din vector sunt modificate si se pierd cele de la back-ul anterior,, Succes,, da, de la acel vector era. multumesc!
|
|
|
9
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Sudoku
|
: Iulie 15, 2014, 13:42:48
|
am incercat si eu sa fac un program care rezolva un joc de sudoku cu backtracking dar nu afiseaza nimic si nu-mi dau seama unde e greseala... #include <fstream> #include <cstring>
using namespace std;
ifstream f("sudoku.in"); ofstream g("sudoku.out");
int a[11][11]; int v[11]; // vector de aparitii
void afisare() { int k,h; for(k=1;k<=9;k++) { for(h=1;h<=9;h++) g<<a[k][h]; g<<'\n'; } }
void back(int i,int j) { int l,c,LL,CC,x,y; if(i==10 && j==1){ afisare(); return; } else{ if(a[i][j]==0) { memset(v,0,sizeof(v)); for(l=1;l<=9;l++)v[a[i][l]]++,v[a[l][j]]++; // marchez elementele de pe linie si coloana in vectorul de aparitii if(i<4)x=1; else if(i>=4 && i<7)x=4; else x=7; if(j<4)y=1; else if(j>=4 && j<7)y=4; else y=7; LL=x+3;CC=y+3; for(l=x;l<LL;l++) for(c=y;c<CC;c++) v[a[l][c]]++;//marchez elementele din patrat for(l=1;l<=9;l++) if(v[l]==0) { a[i][j]=l; if(j==9)back(i+1,1); else back(i,j+1); a[i][j]=0; }
} else{ if(j==9)back(i+1,1); else back(i,j+1); } } }
int main() { int i,j; char ch; for(i=1;i<=9;i++) for(j=1;j<=9;j++) f>>ch,a[i][j]=ch-'0'; back(1,1); return 0; }
in 530070000 600195000 098000060 800060003 400803001 700020006 060000280 000419005 000080079
out 534678912 672195348 198342567 859761423 426853791 713924856 961537284 287419635 345286179
(e problema sudoku de pe campion)
|
|
|
12
|
infoarena - concursuri, probleme, evaluator, articole / Concursuri / Răspuns: OJI 2014
|
: Martie 07, 2014, 10:04:09
|
Buna,
Am nevoie de o indicatie la problema ferma, OJI 2014. Nu stiu cum sa numerotez fiecare culoare. Multumesc.
Eu am facut asa: ... int a[404][404],i,j,n,m; char c; ... int main() { fin>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { fin>>c; a[i][j]=c-'a'+1; }
|
|
|
|