infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Scurtu Vlad din Martie 18, 2012, 22:34:05



Titlul: MinGW Error !!
Scris de: Scurtu Vlad din Martie 18, 2012, 22:34:05
Buna seara. Am facut o sursa pentru problema http://infoarena.ro/problema/iepuras (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

Cod:
#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.