// UUID: 89046ba7-26ab-4dfc-98bf-aeae014f080e
#include <cstdio>
#include <algorithm>
using namespace std;
int a[100001], q[100001];
int main() {
int n, k, x, ptr;
scanf("%d%d", &n, &k);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
while(k--){
scanf("%d", &x);
ptr=0;
for(int i=0;i<x;i++){
ptr=max(ptr, a[i]);
++q[a[i]];
}
long long ans=ptr;
q[ptr]--;
for (;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){
ans+=a[j];
}else{
if(j<n) ++q[a[j]];
ans+=ptr;
q[ptr]--;
for (;ptr >= 0 && q[ptr]<=0; --ptr);
}
}else{
if(j<n && a[j]>ptr){
ans-=a[j];
}else{
if(j<n) ++q[a[j]];
ans-=ptr;
q[ptr]--;
for (;ptr >= 0 && q[ptr]<=0; --ptr);
}
}
}
printf("%lld\n", ans);
}
}
| Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 10/10 | ||||||
| 1 | Elfogadva | 1ms | 316 KiB | ||||
| 2 | Elfogadva | 1ms | 316 KiB | ||||
| subtask2 | 20/20 | ||||||
| 1 | Elfogadva | 1ms | 316 KiB | ||||
| 2 | Elfogadva | 1ms | 316 KiB | ||||
| 3 | Elfogadva | 3ms | 316 KiB | ||||
| 4 | Elfogadva | 4ms | 404 KiB | ||||
| subtask3 | 0/70 | ||||||
| 1 | Elfogadva | 43ms | 428 KiB | ||||
| 2 | Elfogadva | 46ms | 432 KiB | ||||
| 3 | Elfogadva | 143ms | 316 KiB | ||||
| 4 | Elfogadva | 167ms | 464 KiB | ||||
| 5 | Elfogadva | 635ms | 1016 KiB | ||||
| 6 | Elfogadva | 1.264s | 804 KiB | ||||
| 7 | Elfogadva | 878ms | 564 KiB | ||||
| 8 | Elfogadva | 736ms | 680 KiB | ||||
| 9 | Elfogadva | 1.197s | 1076 KiB | ||||
| 10 | Elfogadva | 1.641s | 1076 KiB | ||||
| 11 | Elfogadva | 1.069s | 564 KiB | ||||
| 12 | Időlimit túllépés | 2.582s | 1088 KiB | ||||
| 13 | Elfogadva | 1.901s | 1076 KiB | ||||
| 14 | Időlimit túllépés | 2.588s | 1076 KiB | ||||