梁雨萌姐姐和eleveni正一脸疑惑不知如何下手,城市外冲天的火光点亮夜晚,化成最美的烟火……烟火个锤子啊!有人点燃林火!
只见无数松树在熊熊烈火中噼啪作响,eleveni飞起发现林火竟然组成四个字——“鬼影迷踪”。难道鬼影迷踪就是圣诞失踪背后的凶手吗?
不过目前最重要的事是扑灭林火。为了计算一共需要多少谁来扑灭林火,eleveni需要你来帮忙计算目前还有多少棵树没有着火。
eleveni 猜得没错,鬼影迷踪确实想要灭掉圣诞节,于是他选择烧掉这里的松树。这片森林被划分为 n+1 个区域,编号分别是 0,1,⋯,n ,每片区域都有 ai 棵松树。鬼影迷踪一共烧了 m 次松树林,每次选择一片连续的区域 l 到 r ,并烧掉所有的松树。请帮 eleveni 计算目前这片森林还有多少松树。
第一行,输入一个整数 n ;
第二行,输入 n+1 个整数 ai 表示第 i 片区域有 ai 棵松树;
第三行,输入一个整数 m ;
第四行到第 m+2 行,输入两个整数 l 和 r 。
第一行,输出一个整数表示最后还剩下的松树的棵数。
8
1 2 3 4 5 6 7 8 9
2
0 3
2 5
24
对于 10% 的数据, ai=1, m=0 ;
对于 20% 的数据, ai=1;
对于 80% 的数据 ,ai<104 ;
对于 100% 的数据, 1≤ai<=109,0<=n<=105 ,l<r<105 , 0<=r−l<=100 , 0<=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;
}
我也不知道哪里错了