这道题需要用到数组、排序等方式,原理很简单,接下来给大家一份通俗易懂的答案:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,a[100],q[100],p[100],s[100]={0};
cin>>n>>m;//输入数据
for(int i=0;i<n;i++){
cin>>a[i];//输入每一段的牢固值
}
for(int i=0;i<n;i++){
cin>>q[i]>>p[i];//输入范围
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(j>=q[i]-1&&j<=p[i]-1){
s[i]+=a[j];//计算每轮牢固值
}
}
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(s[i]>s[j]){
swap(s[i],s[j]);//对牢固值排序
}
}
}
cout<<s[0];//输出牢固值
return 0;
}