程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 合工大OJ 1330 種樹,工大oj1330種樹

合工大OJ 1330 種樹,工大oj1330種樹

編輯:C++入門知識

合工大OJ 1330 種樹,工大oj1330種樹


Description

 

某校大門外長度為L的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是1米。我們可以把馬路看成一個數軸,馬路的一端在數軸0的位置,另一端在L的位置;數軸上的每個整數點,即0,1,2,……,L,都種有一棵樹。

    由於馬路上有一些區域要用來建地鐵。這些區域用它們在數軸上的起始點和終止點表示。已知任一區域的起始點和終止點的坐標都是整數,區域之間可能有重合的部分。現在要把這些區域中的樹(包括區域端點處的兩棵樹)移走。你的任務是計算將這些樹都移走後,馬路上還有多少棵樹。

 

 

Input

 

輸入的第一行有兩個整數:L(1 <= L <= 10000)和 M(1 <= M <= 100),L代表馬路的長度,M代表區域的數目,L和M之間用一個空格隔開。接下來的M行每行包含兩個不同的整數,用一個空格隔開,表示一個區域的起始點和終止點的坐標。

 

 

Output

 

對於每個輸入輸出一行 表示剩余的樹的數量

 

 

Sample Input

 

500 3
150 300
100 200
470 471

 

Sample Output

 

298

 

Source

 

新生杯2013    
 1 #include<iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int n,m,ans;
 7     while(cin>>n>>m)
 8     {
 9         ans=0;
10         int *a=new int[n+1];
11         for(int i=0;i<=n;i++)
12             a[i]=1;
13         while(m--)
14         {
15             int x,y;
16             cin>>x>>y;
17             for(int i=x;i<=y;i++)
18                 a[i]=0;
19         }
20         for(int i=0;i<=n;i++)
21             if(a[i]==1)
22                 ans++;
23         cout<<ans<<endl;
24      } 
25     return 0;
26 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved