求助
查看原帖
求助
524512
吴宇峰a楼主2022/10/4 00:40

看到这道题,第一时间想到模拟,结果3个tle,寄了 巨佬帮忙看看问题吧

#include <iostream>
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;

long long a[200005];

int main()
{
    memset(a,0,sizeof(a));
    long long m,d;
    long long t = 0;
    cin >> m >> d;
    long long index = 0;
    for(int i = 1;i <= m;i++)
    {
        string opt;
        cin >> opt;
        long long val;
        cin >> val;
        if(opt == "Q")
        {
            long long maxn = -1e9;
            for(long long j = index;j >= index - val;j--)
            {
                maxn = max(maxn,a[j]);
            }
            t = maxn;
            cout << maxn << endl;
        }
        if(opt == "A")
        {
            a[index] = (val + t) % d;
            t = a[index];
            index++;
        }
    }
}
2022/10/4 00:40
加载中...