杭電acm 1172(暴力+結構體)

來源:互聯網
上載者:User

標籤:ane   sub   數字遊戲   strong   otto   ret   結束   表示   color   

猜數字

Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 7279    Accepted Submission(s): 4002


Problem Description猜數字遊戲是gameboy最喜歡的遊戲之一。遊戲的規則是這樣的:電腦隨機產生一個四位元,然後玩家猜這個四位元是什麼。每猜一個數,電腦都會告訴玩家猜對幾個數字,其中有幾個數字在正確的位置上。
比如電腦隨機產生的數字為1122。如果玩家猜1234,因為1,2這兩個數字同時存在於這兩個數中,而且1在這兩個數中的位置是相同的,所以電腦會告訴玩家猜對了2個數字,其中一個在正確的位置。如果玩家猜1111,那麼電腦會告訴他猜對2個數字,有2個在正確的位置。
現在給你一段gameboy與電腦的對話過程,你的任務是根據這段對話確定這個四位元是什麼。 

 

Input輸入資料有多組。每組的第一行為一個正整數N(1<=N<=100),表示在這段對話中共有N次問答。在接下來的N行中,每行三個整數A,B,C。gameboy猜這個四位元為A,然後電腦回答猜對了B個數字,其中C個在正確的位置上。當N=0時,輸入資料結束。 

 

Output每組輸入資料對應一行輸出。如果根據這段對話能確定這個四位元,則輸出這個四位元,若不能,則輸出"Not sure"。 

 

Sample Input64815 2 15716 1 07842 1 04901 0 08585 3 38555 3 224815 0 02999 3 30 

 

Sample Output3585Not sure 
#include<iostream>using namespace std;const int N=101;int n;struct M{int a,b,c;//a,b,c分別是輸入的A,B,C }m[N];int test(int x,int y){int b[4],c[4],j,i,k=0,s=0,f[4]={0,0,0,0};c[0]=x%10;//////類比值c[1]=(x/10)%10;c[2]=(x/100)%10;c[3]=x/1000;b[0]=m[y].a%10;/////輸入值b[1]=(m[y].a/10)%10;b[2]=(m[y].a/100)%10;b[3]=m[y].a/1000;for(i=0;i<4;i++){//如果類比值是結果,那麼類比值和輸入值相等的位置就是輸入正確的位置 if(b[i]==c[i])k++;}if(k!=m[y].c)//如果正確位置的個數C和類比值和輸入值相等位元不一樣,那麼類比值不是正確結果 return 1;for(i=0;i<4;i++)//對B進行判斷,如果正確個數也相同就是正確結果對於每個輸入值的每位只匹配一次 for(j=0;j<4;j++){if(b[i]==c[j]&&f[j]==0){s++;f[j]=1;break;}}if(s==m[y].b) return 0;elsereturn 1;}int main(){int i,j,k,sign,result;while(cin>>n&&n){k=0;for(i=0;i<n;i++)cin>>m[i].a>>m[i].b>>m[i].c;for(i=1000;i<=9999;i++){//因為是4位元 sign=1;//賦初值為1,表示初始值是不存在正確結果 for(j=0;j<n;j++){sign=test(i,j);//類比值只要不符合一個輸入值就不是正確結果,跳出 if(sign) break;}if(!sign){//如果直到測試完所有輸入值類比值都符合要求,那麼它是正確值 k++;result=i;}}if(k==1)//如果跑完1000到9999,只有一個值符合要求,這就是正確值。 cout<<result<<endl;elsecout<<"Not sure"<<endl;}return 0;} 

 

杭電acm 1172(暴力+結構體)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.