AT_code_festival_2018_quala_b题解

发布时间 2023-11-19 09:59:58作者: Xu_dh

题意

给定一个序列,里面的值只有可能是 \(a\)\(b\)\(a < b\))。有 \(m\) 个区间,这里面的值必须是 \(a\),求如何是序列总和最大。

思路

因为 \(n\)\(m\) 都只有 100,所以可以先暴力将所有值设为 \(b\),再将区间里的值暴力修改为 \(a\),最后统计答案。

AC CODE

#include<bits/stdc++.h>
using namespace std;
int s[105];
signed main(){
	int n,m,a,b;
	cin>>n>>m>>a>>b;
	for(int i=1;i<=n;i++)s[i]=b;
	for(int i=1;i<=m;i++){
		int l,r;
		cin>>l>>r;
		for(int j=l;j<=r;j++){
			s[j]=a;
		}
	}
	long long ans=0;
	for(int i=1;i<=n;i++){
		ans+=s[i];
	}
	cout<<ans;
    return 0;
}