172402025-06-07 19:00:04tomi7Gamecpp17Time limit exceeded 30/1002.588s2036 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);cin.tie(NULL);
    #define int long
	int n, k;cin>>n>>k;
    int a[100003];
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    int q[100003];
    while(k--){
        int x;cin>>x;
        int ptr=0;
        for(int i=0;i<x;i++){
            ptr=max(ptr, a[i]);
            q[a[i]]++;
        }
        int alice=ptr, bob=0;
   //     cout<<"alice   "<<ptr<<'\n';
        q[ptr]--;
        if(q[ptr]<=0){
            for(int i=ptr;i>=0 && q[i]<=0;i--){
                ptr=i;
            }
            ptr--;
        }
    /*        cout<<"  q: ";
            for(int i=0;i<6;i++){
                cout<<i<<":"<<q[i]<<' ';
            }
            cout<<endl;
            cout << "  ptr:" << ptr << endl;*/
        for(int i=1;i<n;i++){
            if(i%2==0){
                if(i+x-1<n && a[i+x-1]>ptr){            
                    alice+=a[i+x-1];
    //                cout<<"alice    "<<a[i+x-1]<<'\n';
                }else{
                    if(i+x-1<n) q[a[i+x-1]]++;
                    alice+=ptr;
     //               cout<<"alice    "<<ptr<<'\n';
                    q[ptr]--;
                    if(q[ptr]<=0){
                        for(int i=ptr;i>=0 && q[i]<=0;i--){
                            ptr=i;
                        }
                        ptr--;
                    }
                }
            }else{
                if(i+x-1<n && a[i+x-1]>ptr){
                    bob+=a[i+x-1];
     //               cout<<"bob   "<<a[i+x-1]<<'\n';
                }else{
                    if(i+x-1<n) q[a[i+x-1]]++;
                    bob+=ptr;
   //                 cout<<"bob   "<<ptr<<'\n';
                    q[ptr]--;
                    if(q[ptr]<=0){
                        for(int i=ptr;i>=0 && q[i]<=0;i--){
                            ptr=i;
                        }
                        ptr--;
                    }
                }
            }
     /*       cout<<"  q: ";
            for(int i=0;i<6;i++){
                cout<<i<<":"<<q[i]<<' ';
            }
            cout<<endl;
            cout << "  ptr:" << ptr << endl;*/
        }
        cout<<alice-bob<<'\n';
    }
}
SubtaskSumTestVerdictTimeMemory
subtask110/10
1Accepted1ms316 KiB
2Accepted1ms316 KiB
subtask220/20
1Accepted1ms316 KiB
2Accepted1ms316 KiB
3Accepted2ms316 KiB
4Accepted4ms500 KiB
subtask30/70
1Accepted37ms484 KiB
2Accepted39ms316 KiB
3Accepted127ms568 KiB
4Accepted149ms588 KiB
5Accepted566ms1272 KiB
6Accepted1.126s1076 KiB
7Accepted782ms1076 KiB
8Accepted574ms1076 KiB
9Accepted1.08s1844 KiB
10Accepted1.485s1844 KiB
11Accepted870ms1076 KiB
12Time limit exceeded2.588s1588 KiB
13Accepted1.717s1844 KiB
14Wrong answer763ms2036 KiB