172362025-06-07 18:50:42tomi7Gamecpp17Hibás válasz 30/1002.585s1184 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);cin.tie();
	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';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask110/10
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
subtask220/20
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
3Elfogadva3ms316 KiB
4Elfogadva6ms316 KiB
subtask30/70
1Elfogadva41ms316 KiB
2Elfogadva43ms500 KiB
3Elfogadva136ms316 KiB
4Elfogadva159ms508 KiB
5Elfogadva601ms820 KiB
6Elfogadva1.2s856 KiB
7Elfogadva830ms820 KiB
8Hibás válasz688ms1076 KiB
9Elfogadva1.139s1076 KiB
10Elfogadva1.567s1184 KiB
11Hibás válasz1.034s1076 KiB
12Időlimit túllépés2.582s1076 KiB
13Elfogadva1.815s1184 KiB
14Időlimit túllépés2.585s1076 KiB