這次的題目是http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=34034

同時也是ITSA52次競賽的題目

Problem 2. 天際線資料群

 

 
題目的意思是
當測資的座標中,如果其中一個座標的x<=其他座標的x,且y座標也<=其他座標的y時
這個座標就不能稱之為"天際線資料",反之,則就是"天際線資料"
而"其他座標"的意思就是不能是x,y都跟自己一樣的座標
所以如果測資有兩個相同座標,且是天際線資料的話
那這兩個都要印出"Y"
  1. #include <iostream>  
  2. #include <vector>  
  3. using namespace std;  
  4.   
  5. int main()  
  6. {  
  7.     int num;  
  8.     cin>>num;  
  9.     vector<vector<int> >arr;  
  10.     for(int i=0;i<num;i++)  
  11.     {  
  12.         int x,y;  
  13.         cin>>x>>y;  
  14.         vector<int>inside;  
  15.         inside.push_back(x);  
  16.         inside.push_back(y);  
  17.         arr.push_back(inside);  
  18.     }  
  19.     for(int i=0;i<num;i++)  
  20.     {  
  21.         int c=0;  
  22.         for(int j=0;j<num;j++)  
  23.         {  
  24.             if(arr[i][0]<=arr[j][0] && arr[i][1]<=arr[j][1] && i!=j)  
  25.             {  
  26.                 if(arr[i][0]==arr[j][0] && arr[i][1]==arr[j][1])  
  27.                     c=0;  
  28.                 else  
  29.                 {  
  30.                     c=1;  
  31.                     break;  
  32.                 }  
  33.             }  
  34.         }  
  35.         if(c==1)  
  36.             cout<<"N";  
  37.         else  
  38.             cout<<"Y";  
  39.         if(i!=num-1)  
  40.             cout<<" ";  
  41.     }  
  42.     cout<<endl;  
  43.     return 0;  
  44. }  
要判斷的條件是如果arr[i]的x,y<=arr[j]的x,y,且i!=j 這項條件成立之後
進入下一行程式碼
如果arr[i]的x,y ==arr[j]的x,y 的話,讓c=0;
這樣就不會讓兩個相同的座標,都成為"非天際線資料"
 
arrow
arrow
    文章標籤
    程式設計 題目介紹
    全站熱搜

    cychss6305 發表在 痞客邦 留言(0) 人氣()