Submission #175645

#TimeUsernameProblemLanguageResultExecution timeMemory
175645VEGAnnNice sequence (IZhO18_sequence)C++14
15 / 100
10 ms1272 KiB
#include <bits/stdc++.h>
#define sz(x) ((int)x.size())
#define PB push_back
using namespace std;
const int N = 200100;
const int PW = 20;

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);

    int qq; cin >> qq;
    for (; qq; qq--){
        int n, m;
        cin >> n >> m;
//        assert((max(n, m) % min(n, m)) == 0);
        if (n == m){
            cout << n - 1 << '\n';
            for (int i = 1; i < n; i++)
                cout << "1 ";
            cout << '\n';
            continue;
        }
        if (max(n, m) % min(n, m) == 0){
            if (n > m){
                cout << n - 1 << '\n';
                for (int i = 0; i < n - 1; i++)
                    if (i % m == 0)
                        cout << +int(1e8) << " " ;
                    else cout << "-1 ";
                cout << '\n';
            } else {
                cout << m - 1 << '\n';
                for (int i = 0; i < m - 1; i++)
                    if (i % n == 0)
                        cout << -int(1e8) << " " ;
                    else cout << "1 ";
                cout << '\n';
            }
            continue;
        }

        if (min(n, m) * 2 - 1 <= max(n, m)) {
            if (n > m){
                cout << n << '\n';
                for (int i = 0; i < n; i++)
                    if (i & 1)
                        cout << int(1e9) << " ";
                    else cout << -int(1e9) + 1 << " ";
                cout << '\n';
            } else {
                cout << m << '\n';
                for (int i = 0; i < m; i++)
                    if (i & 1)
                        cout << -int(1e9) << " ";
                    else cout << +int(1e9) - 1 << " ";
                cout << '\n';
            }
            continue;
        }

        if (n > m){
            cout << m + m - 1 << '\n';
            int x = 0, y = 0;
            for (;; y++){
                if (y % (m - 1) == 0) continue;
                x = y / (m - 1);
                if (x * (n - 1) > y)
                    break;
            }
            for (int i = 1; i < m; i++)
                cout << -x << " ";
            cout << y;
            for (int i = 1; i < m; i++)
                cout << " " << -x;
            cout << '\n';
        } else {
            swap(n, m);
            cout << m + m - 1 << '\n';
            int x = 0, y = 0;
            for (;; y++){
                if (y % (m - 1) == 0) continue;
                x = y / (m - 1);
                if (x * (n - 1) > y)
                    break;
            }
            for (int i = 1; i < m; i++)
                cout << x << " ";
            cout << -y;
            for (int i = 1; i < m; i++)
                cout << " " << x;
            cout << '\n';
        }
    }

    return 0;
}
#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...