Submission #218305

#TimeUsernameProblemLanguageResultExecution timeMemory
218305alishahali1382Konstrukcija (COCI20_konstrukcija)C++14
110 / 110
6 ms384 KiB
#include <bits/stdc++.h> #pragma GCC optimize ("O2") #pragma GCC optimize ("unroll-loops") //#pragma GCC optimize("no-stack-protector,fast-math") using namespace std; typedef long long ll; typedef long double ld; typedef pair<int, int> pii; typedef pair<pii, int> piii; typedef pair<ll, ll> pll; #define debug(x) cerr<<#x<<'='<<(x)<<endl; #define debugp(x) cerr<<#x<<"= {"<<(x.first)<<", "<<(x.second)<<"}"<<endl; #define debug2(x, y) cerr<<"{"<<#x<<", "<<#y<<"} = {"<<(x)<<", "<<(y)<<"}"<<endl; #define debugv(v) {cerr<<#v<<" : ";for (auto x:v) cerr<<x<<' ';cerr<<endl;} #define all(x) x.begin(), x.end() #define pb push_back #define kill(x) return cout<<x<<'\n', 0; const ld eps=1e-7; const int inf=1000000010; const ll INF=10000000000000010LL; const int mod = 1000000007; const int MAXN = 100010, LOG=63; ll n, m, k, u, v, x, y, t, a, b, N=1, M; ll id[MAXN]; ll tav[LOG+1]; int X[MAXN][4]; vector<pii> E; void addedge(int u, int v){ M++; E.pb({u, v}); } void BUILD(){ X[0][0]=++N; X[0][1]=++N; X[0][2]=++N; X[0][3]=++N; addedge(X[0][0], 1); addedge(X[0][1], 1); addedge(X[0][2], 1); addedge(X[0][3], 1); for (int i=1; i<=LOG; i++){ for (int j=0; j<=3; j++){ X[i][j]=++N; addedge(N, X[i-1][0]); addedge(N, X[i-1][1]); addedge(N, X[i-1][2]); } } } int main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); //freopen("input.txt", "r", stdin); //freopen("output.txt", "w", stdout); tav[0]=1; for (int i=1; i<=LOG; i++) tav[i]=-2*tav[i-1]; cin>>k; BUILD(); addedge(++N, X[LOG][0]); for (int i=0; i<=LOG && k; i++){ ll kk=abs(k); if (kk&(1ll<<i)){ addedge(N, X[i][3]); k-=tav[i]; //debug(i) } } cout<<N<<' '<<M<<'\n'; for (pii p:E) cout<<N+1-p.first<<' '<<N+1-p.second<<'\n'; debug2(N, M) 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...