HNU 12812 Broken Audio Signal

來源:互聯網
上載者:User

標籤:style   blog   http   color   os   io   

題目連結:http://acm.hnu.cn/online/?action=problem&type=show&id=12812

一直弄錯了一個題意,教訓啊,比賽最怕的就是弄錯題意了

 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #include<cmath> 6 #include<cstdlib> 7 using namespace std; 8 const int maxn = 1000+5; 9 int num[maxn],X[maxn],flag[maxn];10 11 int main()12 {13 //    freopen("A2.out","w",stdout);14 //    freopen("A.in","r",stdin);15     int n;16     char str[30];17     while(scanf("%d",&n),n)18     {19         memset(flag,0,sizeof(flag));20         int num_x = 0,end = 0;21         for(int i = 1;i <= n;++i)22         {23             scanf("%s",str);24             if(str[0] == ‘X‘ || str[0] == ‘x‘)25             {26                 flag[i] = 1;27                 X[num_x++] = i;28             }29             else num[i] = atoi(str);30             if(i > 1 && flag[i] == 1 && flag[i-1] == 1)31             end = 1;32         }33         if(num_x >= n || end)   /////全是x無法判斷,超過兩個x在一起也是無解34         {35             printf("none\n");36             continue;37         }38         for(int i = 1;i < n;++i)39         if(flag[i] == 0 && flag[i+1] == 0)40         {41             if(((i & 1) && num[i] >= num[i+1]) || (!(i & 1) && num[i] <= num[i+1]))42             {43                 end = 1;44                 break;45             }46         }47         if(end)        /////出現不符合規則的情況48         {49             printf("none\n");50             continue;51         }52         int l = -0x7fffffff,r = 0x7fffffff;53         for(int i = 0;i < num_x;++i)54         if(X[i] & 1)55         {56             if(X[i] > 1 && flag[X[i]-1] == 0)57             r = min(r,num[X[i]-1] - 1);58             if(X[i] < n && flag[X[i]-1] == 0)59             r = min(r,num[X[i]+1] - 1);60         }61         else62         {63             if(X[i] > 1 && flag[X[i]-1] == 0)64             l = max(l,num[X[i]-1] + 1);65             if(X[i] < n && flag[X[i]+1] == 0)66             l = max(l,num[X[i]+1] + 1);67         }68         if(l == r)69         printf("%d\n",l);70         else if(l > r)71         printf("none\n");72         else printf("ambiguous\n");73     }74     return 0;75 }
View Code

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.