#include <bits/stdc++.h>
using namespace std;
int main() {
#define int long long
int n, k;cin>>n>>k;
vector<int> a(n);
for(int i=0;i<n;i++){
cin>>a[i];
}
vector<int> q(n+1);
while(k--){
int x;cin>>x;
int ptr=0;
for(int i=0;i<x;i++){
ptr=max(ptr, a[i]);
q[a[i]]++;
}
int alice=ptr, bob=0;
// cout<<"alice "<<ptr<<'\n';
q[ptr]--;
if(q[ptr]<=0){
for(int i=ptr;i>=0 && q[i]<=0;i--){
ptr=i;
}
ptr--;
}
/* cout<<" q: ";
for(int i=0;i<6;i++){
cout<<i<<":"<<q[i]<<' ';
}
cout<<endl;
cout << " ptr:" << ptr << endl;*/
for(int i=1;i<n;i++){
if(i%2==0){
if(i+x-1<n && a[i+x-1]>ptr){
alice+=a[i+x-1];
// cout<<"alice "<<a[i+x-1]<<'\n';
}else{
if(i+x-1<n) q[a[i+x-1]]++;
alice+=ptr;
// cout<<"alice "<<ptr<<'\n';
q[ptr]--;
if(q[ptr]<=0){
for(int i=ptr;i>=0 && q[i]<=0;i--){
ptr=i;
}
ptr--;
}
}
}else{
if(i+x-1<n && a[i+x-1]>ptr){
bob+=a[i+x-1];
// cout<<"bob "<<a[i+x-1]<<'\n';
}else{
if(i+x-1<n) q[a[i+x-1]]++;
bob+=ptr;
// cout<<"bob "<<ptr<<'\n';
q[ptr]--;
if(q[ptr]<=0){
for(int i=ptr;i>=0 && q[i]<=0;i--){
ptr=i;
}
ptr--;
}
}
}
/* cout<<" q: ";
for(int i=0;i<6;i++){
cout<<i<<":"<<q[i]<<' ';
}
cout<<endl;
cout << " ptr:" << ptr << endl;*/
}
cout<<alice-bob<<'\n';
}
}
| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 10/10 | ||||||
| 1 | Accepted | 1ms | 508 KiB | ||||
| 2 | Accepted | 1ms | 316 KiB | ||||
| subtask2 | 20/20 | ||||||
| 1 | Accepted | 2ms | 316 KiB | ||||
| 2 | Accepted | 1ms | 316 KiB | ||||
| 3 | Accepted | 3ms | 316 KiB | ||||
| 4 | Accepted | 6ms | 316 KiB | ||||
| subtask3 | 0/70 | ||||||
| 1 | Accepted | 45ms | 508 KiB | ||||
| 2 | Accepted | 48ms | 316 KiB | ||||
| 3 | Accepted | 146ms | 316 KiB | ||||
| 4 | Accepted | 172ms | 316 KiB | ||||
| 5 | Accepted | 649ms | 1076 KiB | ||||
| 6 | Accepted | 1.279s | 1076 KiB | ||||
| 7 | Accepted | 888ms | 1076 KiB | ||||
| 8 | Accepted | 750ms | 1588 KiB | ||||
| 9 | Accepted | 1.231s | 1588 KiB | ||||
| 10 | Accepted | 1.687s | 1668 KiB | ||||
| 11 | Accepted | 1.123s | 1852 KiB | ||||
| 12 | Time limit exceeded | 2.589s | 1600 KiB | ||||
| 13 | Accepted | 1.947s | 1844 KiB | ||||
| 14 | Time limit exceeded | 2.584s | 1992 KiB | ||||