【基础】植树

Description

Star为了参加编程选拔考试已经做好了非常充分的准备,但是他有个最重要的毛病就是他十分的粗心,为了能在考试中不犯低级错误,拿到比较好的成绩,star决定做件好事来增加他的rp。做什么好事呢?star想到了常州好多道路刚修好,路边的绿化还没有好,于是star决定为一条刚修好的马路两旁种上树木。当然这一定是star亲自抄手(挖坑,种树,浇水……工程量好大,为了rp,star豁出去了,再累再苦也干),道路每隔5米种一棵树,正常情况下star种一棵树需要16分钟(这么快,因为我们的star身强力壮)但是由于有部分位置的土壤质地不一样,所以star种树的时间有时会和正常情况不一样,质地软的就种得快,质地硬的就种得慢,当然不一样的土壤是预先知道的,所以star 想统计他种完一条路上的树需要多少时间。

Input

第1行:两个整数m 和 n,m表示道路有m米,(m保证是5的倍数),n表示有n段不同质地的土壤;m<=100,n<=100;

第2..n+1行:每行3个整数i,j,k表示从第i米开始到j米结束这段道路的质地是一样的,(i<=j)在这些地上每种树需要耗费k分钟时间,道路起始位置为0,起始位置当然也是要植树的。

Output

一行:一个整数(保证在longint范围),star 种完一条道路上的树需要的总时间。(注意道路的两边都要植树)

Sample Input 1 

15 3
0 10 15
11 12 10
13 15 20

Sample Output 1

130

Hint

一共需要植8棵树,一边四棵。分别种在0 5 10 15 号位置共需要(15+15+15+20)*2=130分钟

Source

数组问题

 

#include <iostream>
#include <cstdio>
using namespace std;
int main(){
	int m,n;
	cin>>m>>n;
	int start[n];//开始位置
	int end[n];//结束位置
	int time[n];//种树时间
	for(int i=0;i<n;i++){
		cin>>start[i];
		cin>>end[i];
		cin>>time[i];
	}
	int sum=0;//计数器
	bool include=false;//bool如果这个start及end中包含i;
	for(int i=0;i<=m;i+=5){
		for(int k=0;k<n;k++){
			//k代表start,end,time的角标
			if(i>=start[k]&&i<=end[k]){
				sum+=time[k];
				include=true;
				break;
			}
		}
		if(!include){
			sum+=16;
		}
		include=false;
	}
	cout<<sum*2;
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值