Submission #1305153

#TimeUsernameProblemLanguageResultExecution timeMemory
1305153LIANice sequence (IZhO18_sequence)C++17
0 / 100
191 ms55584 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) {
        g[i+n].push_back(i);
        in[i]++;
        in[i+m]++;
        g[i].push_back(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:52:1: warning: no return statement in function returning non-void [-Wreturn-type]
   52 | }
      | ^
#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...