#include <bits/stdc++.h>
#define ll long long
#define MAXN 500010
using namespace std;
vector<ll> G[MAXN];
ll indeg[MAXN],pref[MAXN],ans[MAXN];
int main()
{
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
ll t,n,m;
cin >> t;
while (t--)
{
cin >> n >> m;
ll d=__gcd(n,m);
ll len=max(0ll,n+m-d-1);
ll cur=2*len;
for (ll i=0;i<=len;i++)
{
G[i].clear();
indeg[i]=0;
pref[i]=cur--;
}
for (ll i=0;i+n<=len;i++)
{
G[i].push_back(i+n);
indeg[i+n]++;
}
for (ll i=0;i+m<=len;i++)
{
G[i+m].push_back(i);
indeg[i]++;
}
queue<ll> q;
for (ll i=0;i<=len;i++)
{
if (!indeg[i])
q.push(i);
}
while (!q.empty())
{
ll i=q.front();
q.pop();
for (ll next : G[i])
{
indeg[next]--;
pref[next]=min(pref[next],cur--);
if (!indeg[next])
q.push(next);
}
}
cout << len << "\n";
for (ll i=1;i<=len;i++)
cout << pref[i]-pref[i-1] << " ";
cout << "\n";
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |