Submission #1223022

#TimeUsernameProblemLanguageResultExecution timeMemory
122302212baaterRarest Insects (IOI22_insects)C++20
0 / 100
0 ms412 KiB
#include "insects.h" #include <iostream> #include <vector> using namespace std; bool box[2002]; int currentMax = 0; int inBox = 0; int n; void add_until_group_amount(int num) { for(int i = 0; i < n; i++) { if(box[i]) continue; move_inside(i); int returnVal = press_button(); if (returnVal > num) { move_outside(i); continue; } box[i] = true; inBox++; } } void remove_some(int num) { for(int i = 0; i < n; i++) { if (!box[i]) continue; move_outside(i); box[i] = false; inBox--; } } int min_cardinality(int N) { vector<int> groups(N); n = N; int groupCount = 0; int returnVal; for(int i = 0; i < N; i++) { move_inside(i); returnVal = press_button(); if (returnVal > 1) { move_outside(i); continue; } box[i] = true; inBox++; groupCount++; } int upper = N/groupCount, lower = 0; // cout << "groupCount, upper: " << groupCount << " " << upper << "\n"; int mid; while(upper-lower > 2) { mid = (upper-lower)>>1; // cout << "\n-----\n" << mid << "\n------\n"; add_until_group_amount(mid); if (inBox/groupCount == mid) { lower = mid; } else { upper = mid; remove_some(mid); } } return mid; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...