基礎練習 芯片測試

資源限制
時間限制:1.0s   內存限制:512.0MB
問題描述
  有n(2≤n≤20)塊芯片,有好有壞,已知好芯片比壞芯片多。
  每一個芯片都能用來測試其餘芯片。用好芯片測試其餘芯片時,能正確給出被測試芯片是好仍是壞。而用壞芯片測試其餘芯片時,會隨機給出好或是壞的測試結果(即此結果與被測試芯片實際的好壞無關)。
  給出全部芯片的測試結果,問哪些芯片是好芯片。
輸入格式
  輸入數據第一行爲一個整數n,表示芯片個數。
  第二行到第n+1行爲n*n的一張表,每行n個數據。表中的每一個數據爲0或1,在這n行中的第i行第j列(1≤i, j≤n)的數據表示用第i塊芯片測試第j塊芯片時獲得的測試結果,1表示好,0表示壞,i=j時一概爲1(並不表示該芯片對自己的測試結果。芯片不能對自己進行測試)。
輸出格式
  按從小到大的順序輸出全部好芯片的編號
樣例輸入
3
1 0 1
0 1 0
1 0 1
樣例輸出
1 3
 
須要思考技巧

提交代碼

 1 #include<iostream>
 2 #include<vector>
 3 using namespace std;
 4 //author: Qiang
 5 int main(){
 6     int n;
 7     cin>>n;
 8     int s[n][n];
 9     vector<int>obj;
10     for(int i=0;i<n;i++){
11         for(int j=0;j<n;j++){
12             cin>>s[i][j];
13         }
14     }
15     for(int i=0;i<n;i++){
16         int p1=0,p2=0;
17         for(int j=0;j<n;j++){
18             if(s[j][i]==1)p1++;
19             else p2++;
20         }
21         if(p1>p2){
22             obj.push_back(i+1);
23         }
24     }
25     vector<int>::iterator it;
26     for(it=obj.begin();it!=obj.end();it++){
27         cout<<*it<<" ";
28     }
29     return 0;
30 }
相關文章
相關標籤/搜索