제출 #362552

#제출 시각아이디문제언어결과실행 시간메모리
362552Tenis0206Subway (info1cup19_subway)C++11
100 / 100
12 ms1128 KiB
#include <iostream> #include <cstdio> #include <vector> using namespace std; vector < int > parents; int computeMaxH(int x) { int h = 0; while (h * (h + 1) / 2 <= x) h++; return h - 1; } void generateTree(int maxH) { parents.push_back(-1); for (int i = 1; i <= maxH; ++i) parents.push_back(i-1); } void printTree() { printf("%d\n", (int)parents.size()); for (int i = 0; i < (int)parents.size(); ++i) printf("%d %d\n", i, (int)parents[i]); } int main() { //freopen("input","r",stdin); //freopen("output","w",stdout); int k; cin >> k; int maxH = computeMaxH(k); generateTree(maxH); k -= maxH * (maxH + 1) / 2; if (k > 0) parents.push_back(k-1); printTree(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...