답안 #1116724

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1116724 2024-11-22T08:52:54 Z vjudge1 Nice sequence (IZhO18_sequence) C++17
6 / 100
103 ms 592 KB
#include <bits/stdc++.h>
#pragma optimize("g", on)
#pragma GCC optimize ("inline")
#pragma GCC optimize ("Ofast")
#pragma GCC optimize ("unroll-loops")
#pragma GCC optimize ("03")
#pragma GCC target ("sse,sse2,sse3,ssse3,sse4,popcnt,abm,avx2,mmx,fma,avx,tune=native")
void Freopen () {
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    #endif
}
using namespace std;
#define fi first
#define se second
#define int long long
const int N = 2e2 + 7;
int pref[N];
void solve() {
	int n, m;
	cin>>n>>m;
	// if(min(n, m) == 2) {
	// 	if(n == 2) {
	// 		if(m % 2 == 0) {
	// 			cout << m - 1 << '\n';
	// 			for(int i = 1; i < m; i++)cout << -1 << ' ';
	// 			cout << '\n';
	// 		}else {
	// 			cout << m << '\n';
	// 			int x = m + 1, y = -(m + 2);
	// 			for(int i = 1; i <= m; i++) {
	// 				if(i % 2)cout << x << ' ';
	// 				else cout << y << ' '; 
	// 			}
	// 			cout << '\n';
	// 		}
	// 	}else {
	// 		if(n % 2 == 0) {
	// 			cout << n - 1 << '\n';
	// 			for(int i = 1; i < n; i++)cout << 1 << ' ';
	// 			cout << '\n';
	// 		}else {
	// 			cout << n << '\n';
	// 			int x = n + 2, y = -(n + 1);
	// 			for(int i = 1; i <= n; i++) {
	// 				if(i % 2)cout << y << ' ';
	// 				else cout << x << ' '; 
	// 			}
	// 			cout << '\n';
	// 		}
	// 	}
	// 	return;
	// }
	// if(__gcd(max(n, m), min(n, m)) == min(n, m)) {
	// 	if(n < m) {
	// 		cout << m - 1 << '\n';
	// 		for(int i = 1; i < m; i++)cout << -1 << ' ';
	// 		cout << '\n';
	// 	}else {
	// 		cout << n - 1 << '\n';
	// 		for(int i = 1; i < n; i++)cout << 1 << ' ';
	// 		cout << '\n';
	// 	}
	// 	return;
	// }
	if(n < m) {
		int mxx = 0;
		vector<int> vec;
		for(int x = 1; x <= N; x++) { 
			for(int y = -N; y <= -1; y++) {
				int pos = N;
				for(int i = 1; i < N; i++) {
					int j = (i % n == 0 ? y : x);
					pref[i] = pref[i - 1] + j;
					if(i >= n && (pref[i] - pref[i - n]) >= 0) {
						pos = i - 1;
						break;
					}
					if(i >= m && (pref[i] - pref[i - m]) <= 0) {
						pos = i - 1;
						break;
					}
				}
				if(mxx < pos) {
					mxx = pos;
					vec.clear();
					for(int i = 1; i <= pos; i++) {
						vec.push_back((i % n == 0 ? y : x));
					}
				}
			}
		}
		cout << mxx << '\n';
		for(auto j : vec)cout << j << ' ';
		cout << '\n';
	}else {
		int mxx = 0;
		vector<int> vec;
		for(int x = -N; x <= -1; x++) { 
			for(int y = 1; y <= N; y++) {
				int pos = N;
				for(int i = 1; i < N; i++) {
					int j = (i % m == 0 ? y : x);
					pref[i] = pref[i - 1] + j;
					if(i >= n && (pref[i] - pref[i - n]) >= 0) {
						pos = i - 1;
						break;
					}
					if(i >= m && (pref[i] - pref[i - m]) <= 0) {
						pos = i - 1;
						break;
					}
				}
				if(mxx < pos) {
					mxx = pos;
					vec.clear();
					for(int i = 1; i <= pos; i++) {
						vec.push_back((i % m == 0 ? y : x));
					}
				}
			}
		}
		cout << mxx << '\n';
		for(auto j : vec)cout << j << ' ';
		cout << '\n';
	}
}
signed main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	//Freopen();
	int T = 1;
	cin>>T;
	while(T --)solve();
}
/*

*/

Compilation message

sequence.cpp:2: warning: ignoring '#pragma optimize ' [-Wunknown-pragmas]
    2 | #pragma optimize("g", on)
      | 
sequence.cpp: In function 'void Freopen()':
sequence.cpp:10:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |     freopen("input.txt", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
sequence.cpp:11:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |     freopen("output.txt", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 336 KB Ok
2 Correct 54 ms 504 KB Ok
3 Correct 48 ms 336 KB Ok
4 Correct 57 ms 336 KB Ok
5 Correct 55 ms 336 KB Ok
6 Correct 59 ms 336 KB Ok
7 Correct 47 ms 336 KB Ok
8 Correct 56 ms 336 KB Ok
9 Correct 63 ms 336 KB Ok
10 Correct 51 ms 336 KB Ok
11 Correct 62 ms 336 KB Ok
12 Correct 59 ms 336 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 336 KB Ok
2 Correct 10 ms 336 KB Ok
3 Correct 15 ms 336 KB Ok
4 Correct 20 ms 504 KB Ok
5 Correct 25 ms 336 KB Ok
6 Incorrect 103 ms 336 KB Jury has the better answer : jans = 1727, pans = 207
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 592 KB Ok
2 Correct 6 ms 460 KB Ok
3 Correct 5 ms 336 KB Ok
4 Incorrect 4 ms 336 KB Jury has the better answer : jans = 9, pans = 8
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 336 KB Jury has the better answer : jans = 6, pans = 5
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 336 KB Ok
2 Correct 54 ms 504 KB Ok
3 Correct 48 ms 336 KB Ok
4 Correct 57 ms 336 KB Ok
5 Correct 55 ms 336 KB Ok
6 Correct 59 ms 336 KB Ok
7 Correct 47 ms 336 KB Ok
8 Correct 56 ms 336 KB Ok
9 Correct 63 ms 336 KB Ok
10 Correct 51 ms 336 KB Ok
11 Correct 62 ms 336 KB Ok
12 Correct 59 ms 336 KB Ok
13 Correct 2 ms 592 KB Ok
14 Correct 6 ms 460 KB Ok
15 Correct 5 ms 336 KB Ok
16 Incorrect 4 ms 336 KB Jury has the better answer : jans = 9, pans = 8
17 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 336 KB Ok
2 Correct 54 ms 504 KB Ok
3 Correct 48 ms 336 KB Ok
4 Correct 57 ms 336 KB Ok
5 Correct 55 ms 336 KB Ok
6 Correct 59 ms 336 KB Ok
7 Correct 47 ms 336 KB Ok
8 Correct 56 ms 336 KB Ok
9 Correct 63 ms 336 KB Ok
10 Correct 51 ms 336 KB Ok
11 Correct 62 ms 336 KB Ok
12 Correct 59 ms 336 KB Ok
13 Correct 5 ms 336 KB Ok
14 Correct 10 ms 336 KB Ok
15 Correct 15 ms 336 KB Ok
16 Correct 20 ms 504 KB Ok
17 Correct 25 ms 336 KB Ok
18 Incorrect 103 ms 336 KB Jury has the better answer : jans = 1727, pans = 207
19 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 336 KB Ok
2 Correct 54 ms 504 KB Ok
3 Correct 48 ms 336 KB Ok
4 Correct 57 ms 336 KB Ok
5 Correct 55 ms 336 KB Ok
6 Correct 59 ms 336 KB Ok
7 Correct 47 ms 336 KB Ok
8 Correct 56 ms 336 KB Ok
9 Correct 63 ms 336 KB Ok
10 Correct 51 ms 336 KB Ok
11 Correct 62 ms 336 KB Ok
12 Correct 59 ms 336 KB Ok
13 Correct 5 ms 336 KB Ok
14 Correct 10 ms 336 KB Ok
15 Correct 15 ms 336 KB Ok
16 Correct 20 ms 504 KB Ok
17 Correct 25 ms 336 KB Ok
18 Incorrect 103 ms 336 KB Jury has the better answer : jans = 1727, pans = 207
19 Halted 0 ms 0 KB -