泽泽在中国
时间限制: 1000 ms 空间限制: 262144 KB
题目描述
众所周知,在中国有个地方叫“万里长城”。
泽泽一天后山玩,在捉蟋蟀的时候,忽然看见一个奇怪的洞。泽泽好奇,就钻了进去,结果……
泽泽来到中国万里长城上。长城的城墙很高,泽泽翻墙翻不出去。后面的路又被堵住了,于是泽泽只有一个选择:向前走。
泽泽向前一看,看见一块牌子,牌子上写道:
若要离开此地,就爬出长城吧。
泽泽无语。平时泽泽最不擅长的就是长跑,现在天不遂人愿,他遇上了麻烦。但是没有别的去路,于是他硬着头皮爬起来。
泽泽爬一个单位距离需要一个单位时间。但是这座长城年久失修,地上出现了很多的坑和杂草堆。泽泽在这些地方爬行需要更长的时间。
现在泽泽知道这座长城的长度,以及哪些地方有坑和杂草堆,请算出泽泽需要多少时间才能爬出长城。
输入
第1行2个整数s,n。s表示长城的长度,n表示有多少坑和杂草堆。
之后的n行,每行3个整数ai,bi,ti。表示从ai到bi的一段每个单位距离泽泽需要ti的时间。泽泽在没有坑和杂草堆的地方每个单位距离需要时间1。(保证长度没有重合的)
输出
一个整数,即泽泽爬出的时间。
样例输入
20 5
2 4 2
6 7 4
8 10 2
11 11 5
17 20 5
样例输出
52
数据范围限制
提示
【样例说明】
这座长城泽泽需要走的时间的模拟图:
1 2 2 2 1 4 4 2 2 2 5 1 1 1 1 1 5 5 5 5
【限制】
对于30%的数据,s<=50000,n<=100
对于100%的数据,s<=2000000000,n<=500000
(保证最后结果不超过maxlongint)
----------------------------------------------------------------------------------------------------------------------------
一道纯模拟的题目,开long long就可以了,每一段都是1,多于1的保存一下,最后都加上去。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long n,m;
int main(){
cin>>n>>m;
long long tot=0;
for(int i=1;i<=m;i++){
long long a1,b1,t1;
cin>>a1>>b1>>t1;
tot+=(b1-a1+1)*(t1-1);
}
cout<<n+tot;
return 0;
}