172472025-06-07 21:12:29algoproGamecpp17Time limit exceeded 30/1002.582s1172 KiB
// UUID: 7af4e01c-8942-4a92-9a4c-c5dfcc406d3c
#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;cin>>n>>k;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    while(k--){
        int x;cin>>x;
        int 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;i<n;i++){
            int j = i + x - 1;
            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
1Accepted1ms508 KiB
2Accepted1ms500 KiB
3Accepted3ms316 KiB
4Accepted4ms316 KiB
subtask30/70
1Accepted43ms316 KiB
2Accepted45ms464 KiB
3Accepted135ms500 KiB
4Accepted158ms508 KiB
5Accepted596ms820 KiB
6Accepted1.187s820 KiB
7Accepted822ms820 KiB
8Accepted689ms632 KiB
9Accepted1.128s1076 KiB
10Accepted1.549s1172 KiB
11Accepted1.029s820 KiB
12Time limit exceeded2.582s1128 KiB
13Accepted1.794s1076 KiB
14Time limit exceeded2.581s1076 KiB