172502025-06-07 21:19:35algoproGamecpp17Hibás válasz 30/1002.582s1096 KiB
// UUID: e3cfe069-1ad8-4852-b73f-3962df1cd284
#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]--;
        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
1Elfogadva1ms512 KiB
2Elfogadva1ms316 KiB
subtask220/20
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
3Elfogadva2ms316 KiB
4Elfogadva4ms316 KiB
subtask30/70
1Elfogadva43ms420 KiB
2Elfogadva46ms428 KiB
3Elfogadva143ms460 KiB
4Elfogadva168ms476 KiB
5Elfogadva635ms820 KiB
6Elfogadva1.263s796 KiB
7Elfogadva876ms788 KiB
8Hibás válasz736ms584 KiB
9Elfogadva1.197s1076 KiB
10Elfogadva1.643s1096 KiB
11Hibás válasz1.069s564 KiB
12Időlimit túllépés2.578s1088 KiB
13Elfogadva1.902s1076 KiB
14Időlimit túllépés2.582s1076 KiB