您的位置:首页 > 其它

POJ 2665 Trees 水

2015-08-22 10:29 155 查看
Trees

Time Limit: 1000MSMemory Limit: 65536K
Total Submissions: 10123Accepted: 6650
Description
The road off the east gate of Peking University used to be decorated with a lot of trees. However, because of the construction of a subway, a lot of them are cut down or moved away. Now please help to count how many trees are left.

Let's only consider one side of the road. Assume that trees were planted every 1m (meter) from the beginning of the road. Now some sections of the road are assigned for subway station, crossover or other buildings, so trees in those sections will be moved away
or cut down. Your job is to give the number of trees left.

For example, the road is 300m long and trees are planted every 1m from the beginning of the road (0m). That's to say that there used to be 301 trees on the road. Now the section from 100m to 200m is assigned for subway station, so 101 trees need to be moved
away and only 200 trees are left.
Input
There are several test cases in the input. Each case starts with an integer L (1 <= L < 2000000000) representing the length of the road and M (1 <= M <= 5000) representing the number of sections that are assigned for other use.

The following M lines each describes a section. A line is in such format:

Start End

Here Start and End (0 <= Start <= End <= L) are both non-negative integers representing the start point and the end point of the section. It is confirmed that these sections do not overlap with each other.

A case with L = 0 and M = 0 ends the input.
Output
Output the number of trees left in one line for each test case.
Sample Input
300 1
100 200
500 2
100 200
201 300
0 0

Sample Output
200
300

Source
Beijing 2005 Preliminary

水的毫无人性!!!

ACcode:

#include <map>
#include <queue>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <stdlib.h>
#include <iostream>
#include <algorithm>
#define maxn 2000+10
using namespace std;
int main(){
    long long m,n,st,ed,cnt;
    while(cin>>m>>n&&(m&&n)){
        while(n--){
            cin>>st>>ed;
            m=m-(ed-st)-1;
        }
        cout<<m+1<<'\12';
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: