제출 #1127179

#제출 시각아이디문제언어결과실행 시간메모리
1127179abushbandit_Subway (info1cup19_subway)C++20
100 / 100
5 ms840 KiB
//~ how can i make it 10% more fun? //~ what it would take for me to enjoy this? #include <bits/stdc++.h> using namespace std; #define int long long #define pb push_back #define all(x) x.begin(), x.end() #define ff first #define ss second template <class F, class _S> bool chmin(F &u, const _S &v){ bool flag = false; if ( u > v ){ u = v; flag |= true; } return flag; } template <class F, class _S> bool chmax(F &u, const _S &v){ bool flag = false; if ( u < v ){ u = v; flag |= true; } return flag; } int exp(int x, int n, int m) { x %= m; int res = 1; while (n > 0) { if (n & 1) { res = (res * x) % m; } x = (x * x) % m; n >>= 1; } return res; } int power(int x, int n) { int res = 1; while (n > 0) { if (n & 1) { res = res * x ; } x = x * x ; n >>= 1; } return res; } const int N = 2e5 + 1; const int mod = 1e9 + 7; const int inf = 1e18; void add(int &a, int b) { if (a + b >= mod) a = (a + b) - mod; else a += b; } void sub(int &a, int b) { if (a - b < 0) a = (a - b) + mod; else a -= b;; } template<typename T> using matrix = vector<vector<T>>; namespace FAST { template<typename T, typename F> istream &operator>>(istream &cin, pair<T, F> &p) { cin >> p.first >> p.second; return cin; } template<typename T, typename F> ostream &operator<<(ostream &cout, pair<T, F> &p) { cout << p.first << ' ' << p.second; return cout; } template<typename T> istream &operator>>(istream &cin, vector<T> &a) { for (T &i: a) cin >> i; return cin; } template<typename T> ostream &operator<<(ostream &cout, vector<T> &a) { for (T i: a) cout << i << ' '; return cout; } template<typename T> istream &operator>>(istream &cin, deque<T> &a) { for (T &i: a) cin >> i; return cin; } template<typename T> ostream &operator<<(ostream &cout, deque<T> &a) { for (T i: a) cout << i << ' '; return cout; } } using namespace FAST; void solve() { int k; cin >> k; int l = 1, r = 100000, ans = -1; while(l <= r) { int mid = (l + r) >> 1; if(mid * (mid - 1) / 2 > k) r = mid - 1; else l = mid + 1, ans = mid; } k -= (ans * (ans - 1)) / 2; if(k) cout << ans + 1 << "\n"; else cout << ans << "\n"; for(int i = 0;i < ans;i++) cout << i << " " << i - 1 << "\n"; if(k) cout << ans << " " << k - 1 << "\n"; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0),cout.tie(0); int t = 1; //~ cin >> t; while(t--){ solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...