Submission #862611

#TimeUsernameProblemLanguageResultExecution timeMemory
862611HanksburgerNice sequence (IZhO18_sequence)C++17
43 / 100
63 ms9212 KiB
#include <bits/stdc++.h>
using namespace std;
int a[200005];
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t;
    cin >> t;
    while (t--)
    {
        int n, m, k=1;
        cin >> n >> m;
        if (n>m)
        {
            swap(n, m);
            k=-1;
        }
        if (m%n==0)
        {
            cout << m-1 << '\n';
            for (int i=0; i<m-1; i++)
                cout << -k << ' ';
            cout << '\n';
            continue;
        }
        for (int i=0; i<n; i++)
            a[i]=0;
        long long g=gcd(n, m), ind=m%n-1, x=0, y=0;
        while (ind!=(m%n-g-1+n)%n)
        {
            a[ind]=1;
            ind=(ind+m%n)%n;
            x++;
        }
        while (ind!=m%n-1)
        {
            a[ind]=-1;
            ind=(ind+m%n)%n;
            y++;
        }
        cout << n+m-g-1 << '\n';
        long long q=min(1000000000LL, (1000000000*x+n-n/g)/y), p;
        if ((q*y-n+n/g)%x)
            p=(q*y-n+n/g)/x;
        else
            p=(q*y-n+n/g)/x-1;
        for (int i=0; i<n+m-g-1; i++)
        {
            if (a[i%n]==1)
                cout << p*k << ' ';
            else if (a[i%n]==-1)
                cout << -q*k << ' ';
            else
                cout << k << ' ';
        }
        cout << '\n';
    }
}
#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...