# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
171830 | RafaelSus | Nice sequence (IZhO18_sequence) | C++14 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
typedef long long ll;
const ll inf=1e15;
#define pb push_back
const int INF=(0x3f3f3f3f);
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int t;
cin>>t;
while(t-->0){
int n,m;
cin>>n>>m;
if(max(n,m)%min(n,m)==0){
cout<<max(n,m)-1<<'\n';
int x=-1;
if(n==max(n,m))x=1;
for(int i=0;i<max(n,m)-1;i++)cout<<(i+1)*x<<' ';
cout<<'\n';
}else if(min(n,m)==2){
cout<<max(n,m)<<'\n';
int x=-1;
if(n==2)x=1;
int tmp=max(n,m);
int tm=(max(n,m)+1)*(-1);
vector<int>answ;
for(int i=0;i<max(n,m);i++){
if(i%2==0){
answ.pb(tmp);
tmp--;
}else{
answ.pb(tm);
tm++;
}
}
for(int i=0;i<answ.size();i++){
cout<<answ[i]*x<<' ';
}
cout<<'\n';
}else{
/* if(n>m)
while(__gcd(n,m)!=1)n--;
else
while(__gcd(n,m)!=1)m--;*/
cout<<n+m-gcd(n,m)-1<<'\n';
int x=-1;
if(n==2)x=1;
int tmp=max(n,m);
int tm=(max(n,m)+1)*(-1);
vector<int>answ;
for(int i=0;i<n+m-gcd(n,m)-1;i++){
if(i%2==0){
answ.pb(tmp);
tmp--;
}else{
answ.pb(tm);
tm++;
}
}
for(int i=0;i<answ.size();i++){
answ[i]*=x;
}
int su=0;
for(int i=0;i<min(n,m);i++){
su+=answ[i];
}
if(n<m&&su>0){
for(int i=0;i<answ.size();i++){
answ[i]*=-1;
}
}else if(n>m&&su<0){
for(int i=0;i<answ.size();i++){
answ[i]*=-1;
}
}
for(int i=0;i<answ.size();i++){
cout<<answ[i]<<' ';
}
cout<<'\n';
}
}
}