Submission #1305154

#TimeUsernameProblemLanguageResultExecution timeMemory
1305154LIANice sequence (IZhO18_sequence)C++17
0 / 100
199 ms55656 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define v vector #define lp(i,s,e)for(ll i =s;i<e;++i) v<v<ll>> g; v<ll> pre; v<ll> in; void topo() { queue<ll> q; lp(i,0,1e6) if (in[i]==0) q.push(i); ll cnt =0; while (!q.empty()) { auto nd = q.front(); q.pop(); pre[nd] =cnt++; for (auto it : g[nd]) { in[it]--; if (in[it]==0) { // pre[it] = cnt++; q.push(it); } } } } ll solve() { ll n,m; cin>>n>>m; g.clear(); g.resize(1e6); pre.assign(1e6,0); in.assign(1e6,0); ll ans = n+m -gcd(n,m)-1; cout<<ans<<endl; lp(i,0,ans) { if (i+n <=ans) { g[i+n].push_back(i); in[i]++; } if (i+m <=ans) { g[i].push_back(i+m); in[i+m]++; } } topo(); lp(i,1,ans+1) { cout<<(i==0 ? pre[i] : pre[i]-pre[i-1])<<" "; } } int main() { ll t; cin>>t; while (t--) { solve(); } }

Compilation message (stderr)

sequence.cpp: In function 'long long int solve()':
sequence.cpp:57:1: warning: no return statement in function returning non-void [-Wreturn-type]
   57 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...