|
|
вернуться в форум"Crash ACCESS_VIOLATION" Послано GoGo 9 июл 2001 20:11 This is my source #include <stdio.h> #include <stdlib.h> void main() { long x[2][5000],y[2][5000],i,j,max=0; int n,k,l,gasit,_1,_2,cur=1,sec=0; char ch,cul[2][5000]; scanf("%d",&n); x[sec][0]=1; cul[sec][0]=' '; x[sec][1]=0; y[sec][1]=1000000000; cul[sec][1]='w'; for(l=0;l<n;l++) { scanf("%ld",&i); scanf("%ld",&j); scanf("%c",&ch); scanf("%c",&ch); cul[cur][0]=' '; cul[sec][0]=' '; gasit=0; for(k=1;(k<=x[sec][0] && !gasit);k++) if(i>=x[sec][k] && i<y[sec][k]) { gasit=1; _1=k; } gasit=0; for(k=1;(k<=x[sec][0] && !gasit);k++) if(j>x[sec][k] && j<=y[sec][k]) { gasit=1; _2=k; } x[cur][0]=0; for(k=1;k<_1;k++) { x[cur][++x[cur][0]]=x[sec][k]; y[cur][x[cur][0]]=y[sec][k]; cul[cur][x[cur][0]]=cul[sec][k]; } if(i>x[sec][_1]) { x[cur][++x[cur][0]]=x[sec][_1]; y[cur][x[cur][0]]=i; cul[cur][x[cur][0]]=cul[sec][_1]; } x[cur][++x[cur][0]]=i; y[cur][x[cur][0]]=j; cul[cur][x[cur][0]]=ch; if(j<y[sec][_2]) { x[cur][++x[cur][0]]=j; y[cur][x[cur][0]]=y[sec][_2]; cul[cur][x[cur][0]]=cul[sec][_2]; } for(k=_2+1;k<=x[sec][0];k++) { x[cur][++x[cur][0]]=x[sec][k]; y[cur][x[cur][0]]=y[sec][k]; cul[cur][x[cur][0]]=cul[sec][k]; } x[sec][0]=1; x[sec][1]=x[cur][1]; y[sec][1]=y[cur][1]; cul[sec][1]=cul[cur][1]; for(k=2;k<=x[cur][0];k++) if(cul[sec][x[sec][0]]==cul[cur][k]) y[sec][x[sec][0]]=y[cur][k]; else { x[sec][++x[sec][0]]=x[cur][k]; y[sec][x[sec][0]]=y[cur][k]; cul[sec][x[sec][0]]=cul[cur][k]; } } for(k=1;k<=x[sec][0];k++) if(cul[sec][k]=='w' && y[sec][k]-x[sec][k]>max) { max=y[sec][k]-x[sec][k]; i=x[sec][k]; j=y[sec][k]; } printf("%ld %ld",i,j); } I got "Crash ACCESS_VIOLATION" |
|
|