Submission #1182316

#TimeUsernameProblemLanguageResultExecution timeMemory
1182316PagodePaiva드문 곤충 (IOI22_insects)C++20
50.07 / 100
39 ms504 KiB
#include "insects.h" #include<bits/stdc++.h> using namespace std; const int N = 2010; int cnt[N]; vector <int> rep; void solve(int l, int r, vector <int> ask){ if(l == r){ cnt[rep[l]] = ask.size()+1; return; } vector <int> v1, v2; int mid = (l+r)/2; for(int i = mid+1;i <= r;i++){ move_outside(rep[i]); } for(auto x : ask){ move_inside(x); int val = press_button(); move_outside(x); if(val > 1) v1.push_back(x); else v2.push_back(x); } solve(l, mid, v1); for(int i = l;i <= r;i++){ if(i <= mid){ move_outside(rep[i]); } else{ move_inside(rep[i]); } } solve(mid+1, r, v2); return; } int min_cardinality(int n) { rep.push_back(0); move_inside(0); vector <int> at; for(int i = 1;i < n;i++){ move_inside(i); int v = press_button(); if(v > 1) { move_outside(i); at.push_back(i); } else{ rep.push_back(i); } } solve(0, rep.size()-1,at); int ans = 1e9; for(auto x : rep){ //cout << cnt[x] << ' '; ans = min(ans, cnt[x]); } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...