Submission #315096

#TimeUsernameProblemLanguageResultExecution timeMemory
315096casperwangMouse (info1cup19_mouse)C++14
48 / 100
289 ms256 KiB
#include <bits/stdc++.h>
#include "grader.h"
using namespace std;

void solve(int N) {
  vector <int> g(N), ans(N);
  for (int i = 0; i < N; i++)
    g[i] = i+1;
  random_shuffle(g.begin(), g.end());
  int C = query(g), t;
  for (int i = 0; i < N; i++) {
    if (ans[i]) continue;
    int a = 0, b = 0;
    for (int j = i+1; j < N; j++) {
      if (ans[j]) continue;
      swap(g[i], g[j]);
      t = query(g);
      swap(g[i], g[j]);
      if (t == C + 2) {
        ans[i] = g[i];
        ans[j] = g[j];
        swap(g[i], g[j]);
        break;
      } else if (t == C + 1) {
        if (!a) a = j;
        else {
          b = j;
          break;
        }
      }
    }
    swap(g[i], g[a]);
    swap(g[i], g[b]);
    t = query(g);
    if (t >= C + 2) {
      ans[i] = g[i];
      ans[a] = g[a];
      if (t == C + 3)
        ans[b] = g[b];
    } else {
      swap(g[i], g[b]);
      swap(g[i], g[a]);
      swap(g[i], g[b]);
      swap(g[i], g[a]);
      t = query(g);
      ans[i] = g[i];
      ans[b] = g[b];
      if (t == C + 3)
        ans[a] = g[a];
    }
    C = t;
  }
  return;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...