|
|
back to boardI always get Crash!!!!!!Please tell me why?Here is my program #include<iostream.h> #include<string.h> #include<stdio.h> int l,p; char s[3000000]; void proc(int); int main() { int n,i,c; int ans[1002]; cin>>n; for(i=1;i<=n;i++){ l=0; do{ c=getc(stdin); s[l++]=(char)c; }while(c!='\n'); l--; p=0; proc(0); ans[i]=p; }for(i=1;i<=n;i++){ if(ans[i]==0) cout<<"NO"<<endl; else cout<<"YES"<<endl; } return 0; } void proc(int i){ if(i==l) p=1; if(p==0){ if(i+1<l) if(s[i]=='i' && s[i+1]=='n') proc(i+2); if(i+2<l) if(s[i]=='o' && s[i+1]=='n' && s[i+2]=='e') proc(i+3); if(i+4<l) if(s[i]=='p' && s[i+1]=='u' && s[i+2]=='t' && s[i+3]=='o' && s[i+4]=='n') proc(i+5); if(i+2<l) if(s[i]=='o' && s[i+1]=='u' && s[i+2]=='t') proc(i+3); if(i+5<l) if(s[i]=='o' && s[i+1]=='u' && s[i+2]=='t' && s[i+3]=='p' && s[i+4]=='u' && s[i+5]=='t') proc(i+6); if(i+4<l) if(s[i]=='i' && s[i+1]=='n' && s[i+2]=='p' && s[i+3]=='u' && s[i+4]=='t') proc(i+5); return; } } Maybe it is that... I have immediately noticed a bug in your program. In the statement it is said that the total length of the strings might reach 10^7 and this could cause a single one of them to be with length more than 3000000 your upper bound for string length. This would cause your crash... |
|
|