Submission #1199809

#TimeUsernameProblemLanguageResultExecution timeMemory
1199809omarrrrMinerals (JOI19_minerals)C++20
40 / 100
16 ms4620 KiB
#include "minerals.h"
#include<bits/stdc++.h>
#define ll long long
#define pb push_back

using namespace std;

ll n;

void merge(vector<ll>a,vector<ll>b){

    vector<ll>c,d,x,y;
    ll p=0;
    n=a.size();
    for(ll i=0;i<n/2;i++){
        c.pb(a[i]);
        p=Query(a[i]);
    }
    for(ll i=n/2;i<a.size();i++){
        x.pb(a[i]);
    }
    n=b.size();
    for(ll i=0;i<n;i++){
        if(Query(b[i])==p){
            d.pb(b[i]);
        }else{
            y.pb(b[i]);
        }
        Query(b[i]);
    }
    n=a.size();
    for(ll i=0;i<a.size()/2;i++){
        p=Query(a[i]);
    }
    n=c.size();
    if(n>1){
        merge(c,d);
    }else if(n==1){
        Answer(c[0],d[0]);
    }
    n=x.size();
    if(n>1){
        merge(x,y);
    }else if(n==1){
        Answer(x[0],y[0]);
    }
    return;


}

void Solve(int N) {
    n=N;
    vector<ll>a,b;
    ll p=0,x=0;
    for(ll i=1;i<=2*n;i++){
        x=Query(i);
        if(x!=p){
            p++;
            a.pb(i);
        }else{
            b.pb(i);
        }
    }
    for(ll i=1;i<=2*n;i++){
        x=Query(i);
    }


    merge(a,b);
    return;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...