172492025-06-07 21:19:10algoproGamecpp17Hibás válasz 30/1002.582s1268 KiB
// UUID: fc65bbcf-e1f2-4ec4-9015-fc4df1138646
#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]]++;
        }
        int ans=ptr;
        q[ptr]--;
        while (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]--;
                    while (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]--;
                    while (ptr >= 0 && q[ptr]<=0) --ptr;
                }
            }
        }
        printf("%d\n", ans);
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask110/10
1Elfogadva1ms508 KiB
2Elfogadva1ms316 KiB
subtask220/20
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
3Elfogadva3ms400 KiB
4Elfogadva4ms396 KiB
subtask30/70
1Elfogadva45ms316 KiB
2Elfogadva48ms508 KiB
3Elfogadva144ms460 KiB
4Elfogadva171ms508 KiB
5Elfogadva644ms820 KiB
6Elfogadva1.282s564 KiB
7Elfogadva888ms564 KiB
8Hibás válasz736ms720 KiB
9Elfogadva1.222s1076 KiB
10Elfogadva1.677s1012 KiB
11Hibás válasz1.108s564 KiB
12Időlimit túllépés2.579s1076 KiB
13Elfogadva1.939s1076 KiB
14Időlimit túllépés2.582s1268 KiB