657
技術社區[雲棲]
九度題目1088:剩下的樹
題目1088:剩下的樹
題目描述:
有一個長度為整數L(1<=L<=10000)的馬路,可以想象成數軸上長度為L的一個線段,起點是坐標原點,在每個整數坐標點有一棵樹,即在
0,1,2,...,L共L+1個位置上有L+1棵樹。
現在要移走一些樹,移走的樹的區間用一對數字表示,如 100 200表示移走從100到200之間(包括端點)所有的樹。
可能有M(1<=M<=100)個區間,區間之間可能有重疊。現在要求移走所有區間的樹之後剩下的樹的個數。
輸入:
兩個整數L(1<=L<=10000)和M(1<=M<=100)。
接下來有M組整數,每組有一對數字。
輸出:
可能有多組輸入數據,對於每組輸入數據,輸出一個數,表示移走所有區間的樹之後剩下的樹的個數。
樣例輸入:
500 3
100 200
150 300
470 471
樣例輸出:
298
來源:
2011年清華大學計算機研究生機試真題
機房快要關門了,還沒吃晚飯,原諒我走之前水一題......
#include<stdio.h> #include<string.h> int a[15000]; int main() { int i,j,n,m,x,y,sum; while(scanf("%d%d",&n,&m)!=EOF) { memset(a,0,sizeof(a)); for(i=0;i<m;i++) { scanf("%d%d",&x,&y); for(j=x;j<=y;j++) a[j]=1; } sum=0; for(i=0;i<=n;i++) { if(a[i]==0) sum++; } printf("%d\n",sum); } return 0; }
最後更新:2017-04-03 12:56:20