2017年10月14日 星期六

[ITSA Exam.58] Problem 2. 道路修補(C++)


  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. int main() {  
  5.   
  6.     int m,n,s,e;  //幾筆測資,被標記路段數,開始,結束
  7.     int lon=0;    //路段長度
  8.     int road[10000]={false};  //所有路段都還未被標記需要施工
  9.   
  10.     cin >> m;   
  11.     while(m>0)  
  12.     {  
  13.         m--;  
  14.         cin >> n;  
  15.         while(n>0)  
  16.         {  
  17.             n--;  
  18.             cin >> s >> e;  
  19.             for(int x=s;x<e;x++)  
  20.             {  
  21.                 if(road[x]==0)  //未被標記的話在標記
  22.                 {  
  23.                     road[x] = 1;  
  24.                 }  
  25.             }  
  26.         }  
  27.         for(int x=0;x<10000;x++)  
  28.         {  
  29.             if(road[x] == 1)  //標記完成後計算有被標記的路段長度
  30.             {  
  31.                 lon++;  
  32.             }  
  33.         }  
  34.         cout << lon << endl;  
  35.         lon=0;  //長度歸零
  36.         for(int i=0;i<10000;i++)//路段歸零  
  37.         {  
  38.             road[i]=0;  
  39.         }  
  40.     }  
  41.     return 0;  
  42. }







沒有留言:

張貼留言