|
Titlul: Killed by signal 6 Scris de: Robert Szarvas din Martie 23, 2016, 21:37:20 Salut. Am killed by signal 6 pe o problema pe care iau 90 si nu stiu ce ar putea fi. Pe net nu am gasit ceva care sa ma lamureasca in legatura cu cauza erorii. ](*,)
Daca puteti sa ma ajutati, este vorba de problema Vila. Va las codul mai jos: #include <iostream> #include <fstream> using namespace std; ifstream fin("vila.in"); ofstream fout("vila.out"); int n,m,i,j,k,v[130],a[130][130],MAX,s,x,y,sw1,sw2,sw3,sw4; char c; void ffill(int l, int c, int nr) { ++v[k]; a[l][c]=nr; if(a[l-1][c]==0&&l-1>0) ffill(l-1,c,nr); if(a[l+1][c]==0&&l+1<=n) ffill(l+1,c,nr); if(a[l][c-1]==0&&c-1>0) ffill(l,c-1,nr); if(a[l][c+1]==0&&c+1<=m) ffill(l,c+1,nr); } int main() { fin>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { fin>>c; if(c=='1') a[j]=-1; else if(c=='-') a[j]=0; } for(i=1;i<=n;i++) for(j=1;j<=m;j++) if(a[j]==0) { ffill(i,j,++k); if(v[k]>MAX) MAX=v[k]; } fout<<k<<"\n"<<MAX<<"\n";MAX=0; for(i=1;i<=n;i++) for(j=1;j<=m;j++) if(a[j]==-1) { s=0; if(a[i-1][j]>0&&i-1>0) s+=v[a[i-1][j]]; if(a[i+1][j]>0&&i+1<=n&&a[i+1][j]!=a[i-1][j]) s+=v[a[i+1][j]]; if(a[j-1]>0&&j-1>0&&a[j-1]!=a[i-1][j]&&a[j-1]!=a[i+1][j]) s+=v[a[j-1]]; if(a[j+1]>0&&j+1<=m&&a[j+1]!=a[i-1][j]&&a[j+1]!=a[i+1][j]&&a[j+1]!=a[j-1]) s+=v[a[j+1]]; if(s>MAX) { MAX=s; x=i; y=j; } } fout<<x<<" "<<y<<" "<<MAX+1; return 0; } Titlul: Răspuns: Killed by signal 6 Scris de: Vlad Rochian din Martie 24, 2016, 23:31:59 Cam mic vectorul v. Gândește-te câte camere poți avea maxim :)
Titlul: Răspuns: Killed by signal 6 Scris de: Robert Szarvas din Martie 26, 2016, 15:02:43 Ioai, nici nu observasem de cat am facut vectorul :x Mersi fain! :D
|