Submission #247261

#TimeUsernameProblemLanguageResultExecution timeMemory
247261tqbfjotldMouse (info1cup19_mouse)C++14
42 / 100
302 ms384 KiB
#include "grader.h"
#include <bits/stdc++.h>
using namespace std;

int solved[260];

void solve(int N){
    memset(solved,0,sizeof(solved));
    vector<int> qu;
    for (int x = 1; x<=N; x++){
        qu.push_back(x);
    }
    for (int x = 0; x<N; x++){
        if (solved[x]) continue;
        int minv = -1;
        int p1 = -1;
        int p2 = -1;
        for (int y = x; y<N; y++){
            if (solved[y]) continue;
            //printf("%d %d\n",qu[x],qu[y]);
            swap(qu[x],qu[y]);
            //printf("%d %d\n",qu[x],qu[y]);
            int res = query(qu);
            if (res==N) return;
            if (res>minv){
                p1 = y;
                p2 = -1;
                minv = res;
            }
            else if (res==minv){
                p2 = y;
            }
            swap(qu[x],qu[y]);
        }
        //printf("%d %d pos\n",p1,p2);
        if (p2==-1){
            swap(qu[x],qu[p1]);
            solved[x] = true;
            solved[p1] = true;
        }
        else{
            //printf("figuring out\n");
            swap(qu[x],qu[p1]);
            swap(qu[p1],qu[p2]);
            int res = query(qu);
            if (res==N) return;
            if (res>minv){
                solved[x] = true;
                solved[p2] = true;
            }
            else{
                swap(qu[p1],qu[p2]);
                swap(qu[x],qu[p2]);
                solved[x] = true;
                solved[p1] = true;
            }
        }

    }
    query(qu);
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...