泽泽在中国【泽泽四部曲之第一部】

泽泽在中国

时间限制: 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;
}

猜你喜欢

转载自blog.csdn.net/qq_41734244/article/details/79851932