// 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';
}
}
| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 10/10 | ||||||
| 1 | Accepted | 1ms | 316 KiB | ||||
| 2 | Accepted | 1ms | 316 KiB | ||||
| subtask2 | 20/20 | ||||||
| 1 | Accepted | 1ms | 508 KiB | ||||
| 2 | Accepted | 1ms | 500 KiB | ||||
| 3 | Accepted | 3ms | 316 KiB | ||||
| 4 | Accepted | 4ms | 316 KiB | ||||
| subtask3 | 0/70 | ||||||
| 1 | Accepted | 43ms | 316 KiB | ||||
| 2 | Accepted | 45ms | 464 KiB | ||||
| 3 | Accepted | 135ms | 500 KiB | ||||
| 4 | Accepted | 158ms | 508 KiB | ||||
| 5 | Accepted | 596ms | 820 KiB | ||||
| 6 | Accepted | 1.187s | 820 KiB | ||||
| 7 | Accepted | 822ms | 820 KiB | ||||
| 8 | Accepted | 689ms | 632 KiB | ||||
| 9 | Accepted | 1.128s | 1076 KiB | ||||
| 10 | Accepted | 1.549s | 1172 KiB | ||||
| 11 | Accepted | 1.029s | 820 KiB | ||||
| 12 | Time limit exceeded | 2.582s | 1128 KiB | ||||
| 13 | Accepted | 1.794s | 1076 KiB | ||||
| 14 | Time limit exceeded | 2.581s | 1076 KiB | ||||