GOTO语句使用典例。
1 #include <cstdio> 2 #include <algorithm> 3 using namespace std; 4 5 const int maxn = 100010; 6 int mindif = 2147483647; 7 int sum[maxn]; 8 int main() 9 { 10 int n,s; 11 scanf("%d%d",&n,&s); 12 sum[0]=0; 13 for(int i=1;i<=n;i++) 14 { 15 int tmp; 16 scanf("%d",&tmp); 17 sum[i] = sum[i-1]+tmp; 18 } 19 LP: 20 int ofset; 21 bool fg = false; 22 for(int i=0;i<=n;i++){ 23 ofset = sum[i]; 24 int *ptr = lower_bound(sum+i,sum+n+1,ofset+s); 25 if(*ptr==(ofset+s)) 26 {fg=true;printf("%d-%d\n",i+1,ptr-sum);} 27 else{ 28 //printf("%d:ptr->%d\n",i,*ptr); 29 int dif = *ptr-ofset-s; 30 //printf("dif : %d\n",dif); 31 if(dif>0 && dif<mindif) 32 mindif = dif; 33 } 34 } 35 if(fg==false){ 36 s += mindif; 37 goto LP; 38 } 39 return 0; 40 }
原文:http://www.cnblogs.com/fcp1024/p/4312870.html