172482025-06-07 21:14:52algoproGamecpp17Time limit exceeded 30/1002.588s1268 KiB
// UUID: a7cc8d11-eb9e-4c6c-9192-0e488d063b9b
#include <bits/stdc++.h>
using namespace std;

int a[100001], q[100001];

int main() {
    ios::sync_with_stdio(false);cin.tie(NULL);
	int n, k, x, ptr;cin>>n>>k;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    while(k--){
        cin>>x;
        ptr=0;
        for(int i=0;i<x;i++){
            ptr=max(ptr, a[i]);
            q[a[i]]++;
        }
        long long alice=ptr, bob=0;
        q[ptr]--;
        while (ptr >= 0 && q[ptr]<=0) --ptr;
        for(int i=1, j = x;i<n; ++i, ++j){
            if(i%2==0){
                if(j<n && a[j]>ptr){            
                    alice+=a[j];
                }else{
                    if(j<n) q[a[j]]++;
                    alice+=ptr;
                    q[ptr]--;
                    while (ptr >= 0 && q[ptr]<=0) --ptr;
                }
            }else{
                if(j<n && a[j]>ptr){
                    bob+=a[j];
                }else{
                    if(j<n) q[a[j]]++;
                    bob+=ptr;
                    q[ptr]--;
                    while (ptr >= 0 && q[ptr]<=0) --ptr;
                }
            }
        }
        cout<<alice-bob<<'\n';
    }
}
SubtaskSumTestVerdictTimeMemory
subtask110/10
1Accepted1ms316 KiB
2Accepted1ms316 KiB
subtask220/20
1Accepted1ms316 KiB
2Accepted1ms316 KiB
3Accepted3ms436 KiB
4Accepted4ms436 KiB
subtask30/70
1Accepted43ms456 KiB
2Accepted46ms316 KiB
3Accepted141ms492 KiB
4Accepted165ms512 KiB
5Accepted649ms708 KiB
6Accepted1.296s820 KiB
7Accepted901ms820 KiB
8Accepted731ms564 KiB
9Accepted1.233s1076 KiB
10Accepted1.695s1080 KiB
11Accepted1.095s820 KiB
12Time limit exceeded2.584s1268 KiB
13Accepted1.968s1176 KiB
14Time limit exceeded2.588s1076 KiB