1
已解决
汪恺恒
中级启示者
中级启示者
题目描述 Description
在酷町猫闯关游戏里,有几条小鱼干摆成一排,每一条小鱼干都有对应的经验值Pi,酷町猫每次可以从这一排的开头或者末尾吃掉一条小鱼干获得对应的经验值,最终他必须要吃掉K条小鱼,才能够去往下一关。
请你算出酷町猫最多可以获得的经验值。
输入描述 Input Description
输入三行:
第一行输入一个整数,为小鱼干的个数P
第二行输入P个整数,中间用空格隔开,为每条小鱼干对应的经验值
第三行输入一个整数K,为酷町猫要吃掉的小鱼干的数量。
输出描述 Output Description
输出一行:
一个整数,为酷町猫所能获得的最大经验值
没看出什么问题,莫名爆WA10
#include<iostream>
#include<bits/stdc++.h>
#define inf (1<<30)
#define reg register
using namespace std;
int n,k,ans;
int a[100005];
bool f(int i,int j){
if(a[i]>a[j]) return true;
if(a[i]<a[j]) return false;
while(a[i]==a[j]&&i<=j){
i++,j--;
}
if(a[i]>a[j]) return true;
else return false;
}
int main(){
cin>>n;
for(reg int i=1;i<=n;i++) cin>>a[i];
cin>>k;
int i=1,j=n;
while(k--){
if(f(i,j)){
ans+=a[i],i++;
} else{
ans+=a[j],j--;
}
}
cout<<ans;
return 0;
}
汪恺恒在2021-05-22 19:09:15追加了内容
d
汪恺恒在2021-06-03 18:27:22追加了内容
d