172342025-06-07 18:41:50tomi7Gamecpp17Time limit exceeded 30/1002.589s1992 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    #define int long long
	int n, k;cin>>n>>k;
    vector<int> a(n);
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    vector<int> q(n+1);
    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
1Accepted1ms508 KiB
2Accepted1ms316 KiB
subtask220/20
1Accepted2ms316 KiB
2Accepted1ms316 KiB
3Accepted3ms316 KiB
4Accepted6ms316 KiB
subtask30/70
1Accepted45ms508 KiB
2Accepted48ms316 KiB
3Accepted146ms316 KiB
4Accepted172ms316 KiB
5Accepted649ms1076 KiB
6Accepted1.279s1076 KiB
7Accepted888ms1076 KiB
8Accepted750ms1588 KiB
9Accepted1.231s1588 KiB
10Accepted1.687s1668 KiB
11Accepted1.123s1852 KiB
12Time limit exceeded2.589s1600 KiB
13Accepted1.947s1844 KiB
14Time limit exceeded2.584s1992 KiB