제출 #570299

#제출 시각아이디문제언어결과실행 시간메모리
570299600MihneaICC (CEOI16_icc)C++17
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #include "icc.h" using namespace std; mt19937 rng((long long) (new char)); int get(vector<int> a, vector<int> b) { if (a.empty() || b.empty()) { return 0; } return query((int) a.size(), (int) b.size(), a.data(), b.data()); } vector<int> operator + (vector<int> a, vector<int> b) { for (auto &x : b) { a.push_back(x); } return a; } const int N = 100 + 7; int t[N]; int get_root(int a) { if (t[a] == a) { return a; } else { return t[a] = get_root(t[a]); } } void join(int a, int b) { t[get_root(a)] = get_root(b); } void run(int n) { for (int i = 1; i <= n; i++) { t[i] = i; } for (int step = 1; step <= n - 1; step++) { vector<vector<int>> comps; for (int i = 1; i <= n; i++) { if (get_root(i) == i) { vector<int> currentComp; for (int j = 1; j <= n; j++) { if (get_root(j) == i) { currentComp.push_back(j); } } comps.push_back(currentComp); } } assert((int) comps.size() == n - step + 1); assert((int) comps.size() >= 2); vector<int> p1, p2; while (1) { p1.clear(); p2.clear(); for (auto &comp : comps) { if (rng() & 1) { p1 = p1 + comp; } else { p2 = p2 + comp; } } assert((int) p1.size() + (int) p2.size() == n); if (get(p1, p2) == 1) { break; } } while ((int) p1.size() > 1 || (int) p2.size() > 1) { if ((int) p2.size() > (int) p1.size()) { swap(p1, p2); } assert((int) p1.size() <= (int) p2.size()); vector<int> X, Y; for (auto &vertex : p2) { if (rng() & 1) { X.push_back(vertex); } else { Y.push_back(vertex); } } if (get(p1, X)) { p2 = X; } else { p2 = Y; } } assert((int) p1.size() == 1 && (int) p2.size() == 1); setRoad(p1[0], p2[0]); } } int main() { }

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

/usr/bin/ld: /tmp/ccFw5ViB.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccqVq7ZA.o:icc.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status