Submission #1368358

#TimeUsernameProblemLanguageResultExecution timeMemory
1368358opeleklanosGuessing Game (EGOI23_guessinggame)C++20
0 / 100
0 ms832 KiB
#include <iostream>
#include <vector>
using namespace std;

int main(void){
    int P, n; cin>>P>>n;

    int M = 316;

    if(P == 1){
        cout<<650<<endl;
        vector<int> sel(316, 0);
        vector<int> bucketSize(316, 316);
        for(int i = 0; i<(100000-316*316); i++) bucketSize[i] = 317;
        int x_count = 318;

        for(int i = 0; i<n; i++){
            int ind; cin>>ind;
            if(sel[ind] < bucketSize[ind] - 1){
                sel[ind] ++;
                cout<<sel[ind]<<endl;
            }
            else{
                sel[ind] ++;
                cout<<x_count<<endl;
                x_count++;
            }
        }
    }
    if(P == 2){
        vector<int> v(n, 0);
        for(int i = 0; i<n; i++) cin>>v[i];
        vector<int> bucketSize(316, 316);
        for(int i = 0; i<(100000-316*316); i++) bucketSize[i] = 317;
        
        vector<pair<int, int>> freq(650, {-1, -1});
        for(int i = 0; i<v.size(); i++){
            if(freq[v[i]].first == -1) freq[v[i]].first = i;
            else freq[v[i]].second = i;
        }

        for(int i = 318; i<freq.size(); i++){
            if(freq[i].second != -1){
                cout<<freq[i].first<<' '<<freq[i].second<<endl;
                return 0;
            }
        }
        
        for(int i = 0; i<bucketSize.size(); i++){
            freq.assign(650, {-1, -1});
            for(int j = i; j<i+bucketSize[i]; j++){
                if(freq[v[j]].first == -1) freq[v[j]].first = j;
                else{
                    cout<<freq[v[j]].first<<' '<<j<<endl;
                    return 0;
                }
            }
        }
    }

    return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...