求助
  • 板块灌水区
  • 楼主furina_1013
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/16 16:36
  • 上次更新2024/5/16 16:39:22
查看原帖
求助
794188
furina_1013楼主2024/5/16 16:36

T1.鬼影迷踪

题目背景

梁雨萌姐姐和eleveni正一脸疑惑不知如何下手,城市外冲天的火光点亮夜晚,化成最美的烟火……烟火个锤子啊!有人点燃林火!

只见无数松树在熊熊烈火中噼啪作响,eleveni飞起发现林火竟然组成四个字——“鬼影迷踪”。难道鬼影迷踪就是圣诞失踪背后的凶手吗?

不过目前最重要的事是扑灭林火。为了计算一共需要多少谁来扑灭林火,eleveni需要你来帮忙计算目前还有多少棵树没有着火。

题目描述

eleveni 猜得没错,鬼影迷踪确实想要灭掉圣诞节,于是他选择烧掉这里的松树。这片森林被划分为 n+1n+1 个区域,编号分别是 0,1,⋯ ,n0,1,\cdots,n ,每片区域都有 aia_i 棵松树。鬼影迷踪一共烧了 mm 次松树林,每次选择一片连续的区域 ll 到 rr ,并烧掉所有的松树。请帮 eleveni 计算目前这片森林还有多少松树。

输入格式

第一行,输入一个整数 nn ;

第二行,输入 n+1n+1 个整数 aia_i 表示第 ii 片区域有 aia_i 棵松树;

第三行,输入一个整数 mm ;

第四行到第 m+2m+2 行,输入两个整数 ll 和 rr 。

输出格式

第一行,输出一个整数表示最后还剩下的松树的棵数。

样例 #1

样例输入 #1

8
1 2 3 4 5 6 7 8 9
2
0 3
2 5

样例输出 #1

24

提示

对于 10%10\% 的数据, ai=1, m=0a_i=1,\ m=0 ;

对于 20%20\% 的数据, ai=1a_i=1;

对于 80%80\% 的数据 ,ai<104a_i<10^4 ;

对于 100%100\% 的数据, 1≤ai<=1091\le a_i<=10^9,0<=n<=1050<=n<=10^5 ,l<r<105l<r<10^5 , 0<=r−l<=1000<=r-l<=100 , 0<=m<=100<=m<=10。

#include<bits/stdc++.h>
using namespace std;
int n;
int a[100005];
int m;
int l,r;
long long ans;
int main()
{
	ios::sync_with_stdio(0);            
	cin.tie(0);             
	cout.tie(0);
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
		ans+=a[i]; 
	} 
	cin>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>l>>r;
		for(int j=l;j<=r;j++)
		{
			if(a[j]!=0)ans-=a[j];
			a[j]=0;
		}
	}
	cout<<ans;
	return 0;
}

我也不知道哪里错了
2024/5/16 16:36
加载中...