#include <bits/stdc++.h>
#define FR(i, N) for (int i = 0; i < int(N); i++)
#define all(x) begin(x), end(x)
using namespace std;
using ll = long long;
int getrandom()() {
return rand()%10000 + 1;
}
int main() {
cin.tie(0);
cin.sync_with_stdio(0);
int T;
cin >> T;
FR(iter, T) {
int N, M;
cin >> N >> M;
bool swapped = false;
if (max(N,M)%min(N,M) == 0) {
if (N >= M) {
cout << N-1 << '\n';
for (int i = 0; i < N-1; i++) {
cout << 1 << " ";
}
cout << '\n';
}
else {
cout << M-1 << '\n';
for (int i = 0; i < M-1; i++) {
cout << -1 << " ";
}
cout << '\n';
}
}
else {
if (N < M) {
swap(N, M);
swapped = true;
}
int d = N%M;
int mx = N;
while (d != 0) {
mx = max(mx, d+N);
d += N%M;
if (d >= M) {
d -= M;
}
if (d == 0) {
break;
}
}
vector<int> cntIn(mx, 0);
vector<int> pref(mx, 0);
for (int i = 0; i < mx; i++) {
if (i+N < mx) {
cntIn[i+N]++;
}
if (i-M >= 0) {
cntIn[i-M]++;
}
}
deque<int> deq;
for (int i = 0; i < mx; i++) {
if (cntIn[i] == 0) {
deq.push_back(i);
pref[i] = getrandom();
}
}
while (deq.size()) {
int i = deq.front();
deq.pop_front();
if (i+N<mx) {
cntIn[i+N]--;
pref[i+N] = max(pref[i+N], pref[i]+getrandom());
if (cntIn[i+N] == 0) {
deq.push_back(i+N);
}
}
if (i-M>=0) {
cntIn[i-M]--;
pref[i-M] = max(pref[i-M], pref[i]+getrandom());
if (cntIn[i-M] == 0) {
deq.push_back(i-M);
}
}
}
for (int i = mx-1; i >=0; i--) {
pref[i] -= pref[0];
}
if (!swapped) {
for (int i = 1; i < mx; i++) {
pref[i] *= -1;
}
}
cout << mx - 1 << '\n';
for (int i = 1; i < mx; i++) {
cout << pref[i] - pref[i-1] << " ";
}
cout << '\n';
}
}
return 0;
}
Compilation message
sequence.cpp:9:1: error: 'getrandom' declared as function returning a function
9 | int getrandom()() {
| ^~~
sequence.cpp: In function 'int main()':
sequence.cpp:68:30: error: 'getrandom' was not declared in this scope; did you mean 'srandom'?
68 | pref[i] = getrandom();
| ^~~~~~~~~
| srandom
sequence.cpp:76:56: error: 'getrandom' was not declared in this scope; did you mean 'srandom'?
76 | pref[i+N] = max(pref[i+N], pref[i]+getrandom());
| ^~~~~~~~~
| srandom
sequence.cpp:83:56: error: 'getrandom' was not declared in this scope; did you mean 'srandom'?
83 | pref[i-M] = max(pref[i-M], pref[i]+getrandom());
| ^~~~~~~~~
| srandom