172392025-06-07 18:59:09tomi7Gamecpp17Időlimit túllépés 30/1002.581s1844 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);cin.tie();
    #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';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask110/10
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
subtask220/20
1Elfogadva2ms316 KiB
2Elfogadva1ms316 KiB
3Elfogadva3ms316 KiB
4Elfogadva6ms316 KiB
subtask30/70
1Elfogadva41ms316 KiB
2Elfogadva45ms552 KiB
3Elfogadva140ms568 KiB
4Elfogadva164ms748 KiB
5Elfogadva607ms1076 KiB
6Elfogadva1.207s1076 KiB
7Elfogadva838ms1196 KiB
8Elfogadva750ms1076 KiB
9Elfogadva1.156s1844 KiB
10Elfogadva1.588s1844 KiB
11Elfogadva1.126s1076 KiB
12Időlimit túllépés2.581s1592 KiB
13Elfogadva1.833s1844 KiB
14Hibás válasz944ms1844 KiB