Submission #229749

#TimeUsernameProblemLanguageResultExecution timeMemory
229749VimmerKonstrukcija (COCI20_konstrukcija)C++14
30 / 110
6 ms384 KiB
#include <bits/stdc++.h> //#pragma GCC optimize("unroll-loops") //#pragma GCC optimize("-O3") //#pragma GCC optimize("Ofast") //#pragma GCC optimize("fast-math") //#pragma GCC optimize("no-stack-protector") #define F first #define S second #define sz(x) ll(x.size()) #define pb push_back #define N 75005 #define M ll(1e9 + 7) using namespace std; typedef long double ld; typedef long long ll; typedef short int si; int main() { ios_base::sync_with_stdio(0); istream::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll k; cin >> k; if (k > 0) { if (k < 500) { k++; cout << 2 + k << " " << k * 2 << endl; for (ll i = 1; i <= k; i++) cout << 1 << " " << i + 1 << endl; for (ll i = 1; i <= k; i++) cout << i + 1 << " " << 2 + k << endl; exit(0); } for (ll i = 1; i <= 1000; i++) for (ll j = i; j <= 1000; j++) { if (i * j + i > 1000 || i + j + 2 > 1000) break; for (ll u = 1; u <= 1000; u++) { if (i * j + i + u + u * j > 1000 || i + j + u + 2 > 1000) break; ll m = i * j + i + u + u * j, n = i + j + u + 2; ll ans = -1 + i + j + u - i * j - j * u - i * u + i * j * u; if (ans == k) { cout << n << " " << m << endl; int id = 2; for (int u = 1; u <= i; u++) cout << 1 << " " << id++ << endl; for (int b = 1; b <= j; b++) { for (int a = 1; a <= i; a++) cout << a + 1 << " " << id << endl; id++; } for (int c = 1; c <= u; c++) { for (int b = 1; b <= j; b++) cout << b + i + 1 << " " << id << endl; id++; } for (int c = 1; c <= u; c++) cout << i + j + 1 + c << " " << id << endl; exit(0); } } } } else { for (ll i = 1; i <= 1000; i++) for (ll j = 1; j <= 1000; j++) { if (i * j + j + i > 1000) continue; ll m = i * j + j + i, n = i + j + 2; ll kr = k + 1 - i - j; if (i * j == -kr) { cout << n << " " << m << endl; int id = 2; for (int u = 1; u <= i; u++) cout << 1 << " " << id++ << endl; vector <int> gr; gr.clear(); for (int b = 1; b <= j; b++) { for (int a = 1; a <= i; a++) cout << a + 1 << " " << id << endl; gr.pb(id); id++; } for (auto it : gr) cout << it << " " << id << endl; exit(0); } } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...