校门外的树-poj
問題描述
某校大門外長度為L的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是1米。我們可以把馬路看成一個數(shù)軸,馬路的一端在數(shù)軸0的位置,另一端在L的位置;數(shù)軸上的每個整數(shù)點,即0,1,2,……,L,都種有一棵樹。?
由于馬路上有一些區(qū)域要用來建地鐵。這些區(qū)域用它們在數(shù)軸上的起始點和終止點表示。已知任一區(qū)域的起始點和終止點的坐標都是整數(shù),區(qū)域之間可能有重合的部分。現(xiàn)在要把這些區(qū)域中的樹(包括區(qū)域端點處的兩棵樹)移走。你的任務(wù)是計算將這些樹都移走后,馬路上還有多少棵樹。?
輸入數(shù)據(jù)
輸入的第一行有兩個整數(shù)L(1 <= L <= 10000)和 M(1 <= M <= 100),L代表馬路的長度,M代表區(qū)域的數(shù)目,L和M之間用一個空格隔開。接下來的M行每行包含兩個不同的整數(shù),用一個空格隔開,表示一個區(qū)域的起始點和終止點的坐標。
輸出要求
輸出包括一行,這一行只包含一個整數(shù),表示馬路上剩余的樹的數(shù)目。
輸入樣例
500 3
150 300
100 200
470 471
輸出樣例
298
代碼:
#include<iostream> using namespace std; int max(int x,int y) {return x>y?x:y; } int main() {int L,n,i,j,sum=0;bool trees[10001];int start,end;cin>>L>>n;for(i=0;i<10001;i++)trees[i]=true;//表示有數(shù)for(i=0;i<n;i++){int count=0;cin>>start>>end;max(start,end);for(j=start;j<=end;j++){trees[j]=false;}}for(i=0;i<=L;i++){if(trees[i]==true)sum++;}cout<<sum<<endl;return 0; } /* 500 3 150 300 100 200 470 471 */ View Code?
轉(zhuǎn)載于:https://www.cnblogs.com/gcter/p/7306499.html
總結(jié)
- 上一篇: tomcat问题记录-线程池引发的问题
- 下一篇: 电脑声卡被占用怎么办 电脑声卡被占用怎么