1044. Shopping in Mars (25)

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 }

 

posted @ 2015-03-04 11:37  Fcp1024  阅读(137)  评论(0)    收藏  举报