Buna seara. Am facut o sursa pentru problema
http://infoarena.ro/problema/iepuras , dupa ce compileaza, imi da return code -124721942(un numar mare) si iepuras.exe has stopped working.... Am citit pe internet si am inteles ca ar insemna Runtime Error. Insa nu inteleg ce poate sa aiba. Am trimis sursa pe infoarena si iau 55 puncte, la testele la care nu iau OK imi da Wrong Answer:
http://infoarena.ro/job_detail/716379#include <fstream>
using namespace std;
typedef struct{int x,y;} PUNCT;
PUNCT v[51],w[41];
int m[203][203],c[203][203];
int main()
{
ifstream f("iepuras.in");
ofstream g("iepuras.out");
int N,M,i,j,u,pasi,mv,ss,p1,p2,t,mvc,OK,OK2;
f>>N; f>>M;
f>>p1; f>>p2; f>>ss; mv=0;
for(i=1;i<=N;i++)
{ for(j=1;j<=M;j++)
{ f>>m[i][j];
if(m[i][j]==8) {v[++u].x=i; v[u].y=j;}
if(m[i][j]==7) mv++;
}
}
f>>t; mvc=0;
for(i=1;i<=t;i++)
{ f>>w[i].x; f>>w[i].y;}
OK=1; OK2=1;
pasi=0;
while(p1>=1&&p1<=N&&p2>=1&&p2<=M)
{ if(ss==1) {p1--;}
if(ss==2) {p2--;}
if(ss==3) {p1++;}
if(ss==4) {p2++;}
if(p1==0||p1==N+1||p2==0||p2==M+1)
{
if(p1==0) p1++;
if(p1==N+1) p1--;
if(p2==0) p2++;
if(p2==M+1) p2--;
OK=3; break;
}
pasi++;
if(m[p1][p2]==6) {OK=1; break;}
if(m[p1][p2]==7) { mvc++; m[p1][p2]=0; if(mvc==mv) {OK=2; break;}
}
if(m[p1][p2]==8) { if(ss==1) ss=3;
if(ss==2) ss=4;
if(ss==3) ss=1;
if(ss==4) ss=2;
}
if(m[p1][p2]==5) { if(ss==1) ss=3;
if(ss==2) ss=4;
if(ss==3) ss=1;
if(ss==4) ss=2;
}
if(m[p1][p2]==4) {ss=4; m[p1][p2]=0;}
if(m[p1][p2]==3) {ss=3; m[p1][p2]=0;}
if(m[p1][p2]==2) {ss=2; m[p1][p2]=0;}
if(m[p1][p2]==1) {ss=1; m[p1][p2]=0;}
if(m[p1][p2]==9)
{ if(OK2%2==1)
{
for(j=1;j<=u;j++)
{ m[v[j].x][v[j].y]=0; }
for(j=1;j<=t;j++)
{ m[w[j].x][w[j].y]=8; }
}
else
{
for(j=1;j<=t;j++)
{ m[w[j].x][w[j].y]=0; }
for(j=1;j<=u;j++)
{ m[v[j].x][v[j].y]=8; }
}
OK2++;
}
if(p1>0&&p2>0)
{
if(m[p1-1][p2]==6)
{ if(c[p1-1][p2]==1) {OK=1; break;}
else c[p1-1][p2]=1;
}
if(m[p1+1][p2]==6)
{ if(c[p1+1][p2]==1) {OK=1; break;}
else c[p1+1][p2]=1;
}
if(m[p1][p2-1]==6)
{ if(c[p1][p2-1]==1) {OK=1; break;}
else c[p1][p2-1]=1;
}
if(m[p1][p2+1]==6)
{ if(c[p1][p2+1]==1) {OK=1; break;}
else c[p1][p2+1]=1;
}
}
}
if(OK==1) g<<"INGERAS"<<"\n"<<p1<<" "<<p2<<"\n"<<mvc<<" "<<pasi;
if(OK==2) g<<"FERICIT"<<"\n"<<p1<<" "<<p2<<"\n"<<mvc<<" "<<pasi;
if(OK==3) g<<"RATACIT"<<"\n"<<p1<<" "<<p2<<"\n"<<mvc<<" "<<pasi;
f.close();
g.close();
return 0;
}
Sunt incepator, si chiar nu inteleg ce ar putea sa aiba. Multumesc pentru ajutor.