제출 #684791

#제출 시각아이디문제언어결과실행 시간메모리
684791mychecksedadNice sequence (IZhO18_sequence)C++17
15 / 100
8 ms592 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
#define pb push_back
#define MOD (1e9+7)
#define all(x) x.begin(), x.end()
const int N = 1e6, K = 20;


int n, m, sw = 1;
vector<int> ans;
void solve(){
	cin >> n >> m;
	sw = 1;
	if(n < m){
		swap(n, m);
		sw = -1;
	}

	if(n % m == 0){
		cout << n - 1 << '\n';
		for(int i = 0; i < n - 1; ++i) cout << sw << ' ';
	}else if(min(n, m) == 2){
		cout << n + m - 2 << '\n';
		for(int i = 0; i < n + m - 2; ++i){
			if(i % 2) cout << sw * (n/m + 2) << ' ';
			else cout << sw * -(n/m+1) << ' ';
		}
	}else{
		ans.pb(sw * -(n/m+1));
		for(int j = 1; j < m - 2; ++j){
			if(m % 2){
				if(j%2) ans.pb(1);
				else ans.pb(-1);
			}else{
				if(j==m-3) ans.pb(-2);
				else if(j%2) ans.pb(1);
				else ans.pb(-1);
			}
		}
		ans.pb(sw * -(n/m+2));
		ans.pb(sw * (n/m+2) * 2);
		cout << n + m - 2 << '\n';
		for(int i = 0; i < n + m - 2; i += m){
			for(int k = i; k < min(n + m - 2, i + m); ++k) cout << ans[k % m] << ' ';
		}
	}

}

int main(){
	cin.tie(0);
	ios::sync_with_stdio(0);
	int t; cin >> t;
	while(t--){
		solve();
		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...