172532025-06-07 21:21:35algoproGamecpp17Időlimit túllépés 30/1002.588s1088 KiB
// 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ÖsszpontTesztVerdiktIdőMemória
subtask110/10
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
subtask220/20
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
3Elfogadva3ms316 KiB
4Elfogadva4ms404 KiB
subtask30/70
1Elfogadva43ms428 KiB
2Elfogadva46ms432 KiB
3Elfogadva143ms316 KiB
4Elfogadva167ms464 KiB
5Elfogadva635ms1016 KiB
6Elfogadva1.264s804 KiB
7Elfogadva878ms564 KiB
8Elfogadva736ms680 KiB
9Elfogadva1.197s1076 KiB
10Elfogadva1.641s1076 KiB
11Elfogadva1.069s564 KiB
12Időlimit túllépés2.582s1088 KiB
13Elfogadva1.901s1076 KiB
14Időlimit túllépés2.588s1076 KiB