// UUID: 69099792-07b5-43b8-af8b-3cf58f59feb2
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
#include <iostream>
using namespace std;
const int MAX_N = 1e5;
int a[MAX_N];
int f[1 + MAX_N];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n, k;
cin >> n >> k;
for ( int i = 0; i < n; i ++ )
cin >> a[i];
for ( ; k > 0; k -- ) {
int p;
cin >> p;
for ( int i = 1; i <= n; i ++ )
f[i] = 0;
for ( int i = 0; i < p; i ++ )
f[a[i]] ++;
int mx = n, pocket = 0, player = 1;
long long score = 0;
for ( int i = p; i < n; i ++, player *= -1 ) {
if ( pocket ) {
score += pocket * player;
pocket = 0;
} else {
while ( !f[mx] )
mx --;
f[mx] --;
score += mx * player;
}
if ( a[i] <= mx )
f[a[i]] ++;
else
pocket = a[i];
}
for ( int i = 0; i < p; i ++, player *= -1 ) {
if ( pocket ) {
score += pocket * player;
pocket = 0;
} else {
while ( !f[mx] )
mx --;
f[mx] --;
score += mx * player;
}
}
cout << score << '\n';
}
return 0;
}| 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 | 2ms | 316 KiB | ||||
| 4 | Elfogadva | 4ms | 316 KiB | ||||
| subtask3 | 0/70 | ||||||
| 1 | Elfogadva | 28ms | 508 KiB | ||||
| 2 | Elfogadva | 30ms | 476 KiB | ||||
| 3 | Elfogadva | 104ms | 500 KiB | ||||
| 4 | Elfogadva | 126ms | 512 KiB | ||||
| 5 | Elfogadva | 528ms | 820 KiB | ||||
| 6 | Elfogadva | 1.049s | 820 KiB | ||||
| 7 | Elfogadva | 726ms | 820 KiB | ||||
| 8 | Elfogadva | 630ms | 1080 KiB | ||||
| 9 | Elfogadva | 999ms | 1076 KiB | ||||
| 10 | Elfogadva | 1.375s | 1176 KiB | ||||
| 11 | Elfogadva | 911ms | 1268 KiB | ||||
| 12 | Elfogadva | 2.411s | 1076 KiB | ||||
| 13 | Elfogadva | 1.585s | 1172 KiB | ||||
| 14 | Időlimit túllépés | 2.585s | 1268 KiB | ||||