关于#c++#的问题,请各位专家解答!

img

img

img

#include
using namespace std;
// 本题思路:从后往前填充关卡,每次找当前能填的最高分的锦囊
const int N = 1005, M = 1005;
struct Data{
    int score, timee;
    bool use; 
    // use记录锦囊是否用过
} a[M]; 
// a[] 存储锦囊
int ans, n, m; 
int main(){
    scanf("%d%d", &n, &m);
    for(int i = 1; i <= m; ++i)
        scanf("%d%d", &a[i].timee, &a[i].score);
    
    for(/*****【请补全】*****/){ 
    // i枚举的是第i关
        int id = 0; 
        // id存储目前可选锦囊中分数最高的锦囊的下标
        for(int j = 1; j <= m; ++j){ 
        // j枚举的是锦囊的下标
            if(a[j].timee >= i && !a[j].use){ 
            // 这个锦囊在第i个时刻还没有过期
                if(/*****【请补全】*****/)
                    id = j; 
                // 做一次更新操作
            }
        }
        if(id != 0){
            ans += a[id].score;
            /*****【请补全】*****/
        }
    }
    printf("%d\n", ans);
    
    return 0;
}

哥,我建议你发一下文字,要不然我们想回也没办法

金苹果岛

Description

代码勇者来到了金苹果岛上,金苹果岛上有两种苹果:随处可见的红苹果与稀有美味的金苹果。

勇者的初始代码能力为 1,他每吃下一个红苹果,代码能力就会得到一定程度的提升(每个红苹果带来的提升可能是不同的,甚至也可能是负的);他每吃下一个金苹果,代码能力就会直接翻倍**(每个金苹果的效果都是完全相同的)。

岛上的苹果仙子用 n 个红苹果和m个金苹果招待了勇者,勇者必须吃光所有苹果。勇者必须按照仙子规定的顺序吃红苹果,但是他可以自由安排**什么时候吃金苹果(可以在吃任意一个红苹果之前或之后吃若干个金苹果)。

求勇者在离开金苹果岛的时候的代码能力的最大值。

Input Format

Output Format

输出一个整数,表示勇者在离开金苹果岛的时候的代码能力的最大值。

I/O Sample #1

Sample Input #1

6 2
1 -2 3 1 -6 5

Sample Output #1

15

I/O Sample #2

Sample Input #2

8 3
5 -3 -8 2 4 -11 9 1

Sample Output #2

42

Hint

样例1解释

勇者吃掉红苹果 1,-2,3,1,代码能力变为 4;

勇者吃掉 $2$ 颗金苹果,代码能力变为 16;

勇者吃掉红苹果 -6,5,代码能力变为 15。

这是勇者的最优方案。

子任务

对于 10% 的数据,a_i\ge0;

对于 30% 的数据,m=0;

对于 70% 的数据,m=1;

对于 100% 的数据,