#include <bits/stdc++.h>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);cin.tie(NULL);
#define int 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;
priority_queue<int> qq;
for(int i=0;i<x;i++){
qq.push(a[i]);
q[a[i]]++;
}
int alice=qq.top(), bob=0;
qq.pop();
for(int i=1;i<n;i++){
if(i%2==0){
if(i+x-1<n && a[i+x-1]>qq.top()){
alice+=a[i+x-1];
}else{
if(i+x-1<n) { q[a[i+x-1]]++; qq.push(a[i+x-1]); }
alice+=qq.top();
qq.pop();
}
}else{
if(i+x-1<n && a[i+x-1]>qq.top()){
bob+=a[i+x-1];
}else{
if(i+x-1<n) { q[a[i+x-1]]++; qq.push(a[i+x-1]); }
bob+=qq.top();
qq.pop();
}
}
}
cout<<alice-bob<<'\n';
}
}
| Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 10/10 | ||||||
| 1 | Elfogadva | 1ms | 512 KiB | ||||
| 2 | Elfogadva | 1ms | 316 KiB | ||||
| subtask2 | 20/20 | ||||||
| 1 | Elfogadva | 3ms | 316 KiB | ||||
| 2 | Elfogadva | 2ms | 316 KiB | ||||
| 3 | Elfogadva | 9ms | 316 KiB | ||||
| 4 | Elfogadva | 25ms | 316 KiB | ||||
| subtask3 | 0/70 | ||||||
| 1 | Elfogadva | 241ms | 548 KiB | ||||
| 2 | Elfogadva | 254ms | 604 KiB | ||||
| 3 | Elfogadva | 810ms | 752 KiB | ||||
| 4 | Elfogadva | 976ms | 784 KiB | ||||
| 5 | Időlimit túllépés | 2.594s | 2296 KiB | ||||
| 6 | Időlimit túllépés | 2.599s | 2408 KiB | ||||
| 7 | Időlimit túllépés | 2.582s | 2128 KiB | ||||
| 8 | Időlimit túllépés | 2.582s | 3412 KiB | ||||
| 9 | Időlimit túllépés | 2.578s | 3520 KiB | ||||
| 10 | Időlimit túllépés | 2.599s | 3660 KiB | ||||
| 11 | Időlimit túllépés | 2.585s | 3748 KiB | ||||
| 12 | Időlimit túllépés | 2.579s | 3500 KiB | ||||
| 13 | Időlimit túllépés | 2.576s | 3768 KiB | ||||
| 14 | Időlimit túllépés | 2.599s | 3808 KiB | ||||