제출 #830554

#제출 시각아이디문제언어결과실행 시간메모리
830554FatihSolak수천개의 섬 (IOI22_islands)C++17
컴파일 에러
0 ms0 KiB
#include "insects.h" #include <bits/stdc++.h> using namespace std; int min_cardinality(int N){ vector<int> v; int now = 0; int dif = 0; auto add = [&](int x){ v.push_back(x); move_inside(x); now = press_button(); }; auto del = [&](){ move_outside(v.back()); v.pop_back(); now = press_button(); }; auto del2 = [&](){ move_outside(v.back()); v.pop_back(); now--; }; auto del3 = [&](){ move_outside(v.back()); v.pop_back(); }; add(0); dif = 1; for(int i = 1;i<N;i++){ add(i); if(now == 2){ del2(); } else dif++; } if(dif == 1) return N; if(dif == 2){ for(int i = 0;i<N;i++){ if(find(v.begin(),v.end(),i) == v.end()){ add(i); } } return N - now; } if(dif <= 6){ vector<bool> found(N,0); int mini = 1e9; for(int i = 0;i<N;i++){ if(found[i] == 0){ while(v.size()) del2(); now = 0; int cnt = 0; for(int j = 0;j<N;j++){ if(found[j])continue; add(j); if(now != cnt + 1){ del3(); } else{ found[j] = 1; cnt++; } } mini = min(mini,cnt); } } return mini; } int l = 1,r = N/dif; while(l < r){ int m = (l + r + 1)/2; int tmp = now; press_button(); assert(now == tmp); if(now < m){ for(int i = 0;i<N;i++){ if(find(v.begin(),v.end(),i) == v.end()){ add(i); if(now > m) del2(); } } } else{ while(now > m){ del(); } for(int i = 0;i<N;i++){ if(find(v.begin(),v.end(),i) == v.end()){ add(i); if(now > m) del2(); } } } if(v.size() == m * dif){ l = m; } else r = m -1; } return l; }

컴파일 시 표준 에러 (stderr) 메시지

islands.cpp:1:10: fatal error: insects.h: No such file or directory
    1 | #include "insects.h"
      |          ^~~~~~~~~~~
compilation terminated.