Submission #845629

#TimeUsernameProblemLanguageResultExecution timeMemory
845629vjudge1Konstrukcija (COCI20_konstrukcija)C++17
0 / 110
1 ms348 KiB
// Imagine not FFT #include <bits/stdc++.h> #define ONLINE_JUDGE #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; #define ordered_set tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> #ifndef ONLINE_JUDGE #define DEBUG(x) std::cerr << #x << ": " << x << std::endl; #define DEBUGV(x) std::cerr << #x << ": { "; for(auto ___y:x) std::cerr << ___y << " "; std::cerr << "}" << std::endl; #define DEBUGVV(x) std::cerr << #x << ": { \n"; for(int _i=0;_i<sz(x);++_i) {DEBUGV(x[_i]);} std::cerr << "}" << std::endl; #define DEBUGVP(x) std::cerr << #x << ": { "; for(auto ___y:x) std::cerr << "{" << ___y.first << "," << ___y.second << "}" << " "; std::cerr << "}" << std::endl; #define DEBUGPII(x) std::cerr << #x << ": { " << x.first << " , " << x.second << " }" << endl; #define files freopen("in.txt","r",stdin);freopen("out.txt","w",stdout); #define fastio std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); std::cout.tie(nullptr); #else #define fastio std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); std::cout.tie(nullptr); #define DEBUG(...) void(23) #define DEBUGV(x) void(23); #define DEBUGARR(arr, size) void(23) #define DEBUGPRINT(...) void(23) #define DEBUGMAP(...) void(23) #define DEBUGMAPQUEUE(...) void(23) #define DEBUGVV(x) void(23); #define DEBUGVP(x) void(23); #define DEBUGPII(x) void(23); #define files void(23); #endif #define int long long #define ll long long #define pb push_back #define ff first #define ss second #define pii std::pair < int , int > #define pll std::pair < ll , ll > #define vi std::vector < ll > #define vl std::vector < int > #define vii std::vector < pii > #define vll std::vector < pll > #define vvi std::vector < vi > #define vvii std::vector < vii > #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() #define forn(i,j) for(int i=0;i<j;i++) #define forr(i,j,k) for(int i=j;i<k;i++) #define mset multiset #define pqueue priority_queue #define cmax(a,b) (a = max(a,b)) #define cmin(a,b) (a = min(a,b)) #define sz(a) (int)(a.size()) const int MOD = 1000000007; const int MOD2 = 998244353; using namespace std; struct node{ int neg=0; }; void solve(int _t_case){ int k; cin >> k; if(k==0) {cout << "0 0" << endl;return;} vii edges; edges.pb({1,2}); edges.pb({1,3}); forn(i,63){ edges.pb({i+2,i+4}); edges.pb({i+2,i+5}); edges.pb({i+3,i+4}); edges.pb({i+3,i+5}); } int N=68; int bit = 1; vi addLat; while(k>0){ if(k%2==1){ edges.pb({2*bit,N}); if(bit%2==1){ edges.pb({N,N+1}); ++N; } addLat.pb(N); ++N; } k/=2; ++bit; } for(auto b:addLat){ edges.pb({b,N}); } cout << N << " " << edges.size() << endl; for(auto e:edges){ cout << e.ff << " " << e.ss << endl; } return; } signed main(){ fastio; files; int t=1,_t=0; //std::cin >> t; while(_t<t){ ++_t; solve(_t); } return 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...