답안 #236801

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
236801 2020-06-03T10:57:56 Z NONAME Vođe (COCI17_vode) C++17
120 / 120
553 ms 96696 KB
#include <bits/stdc++.h>
#define pb push_back	
using namespace std;
 
const int N = 5e3 + 10;
 
int n, m, k, a[N], f[N][N];
 
int main() {
	cin >> n >> m >> k;
	
	for (int i = 0; i < n; ++i)
		cin >> a[i];
		
	for (int i = 0; i < n; ++i)
		f[(i + 1) % n][m] = (a[i] != a[(i + 1) % n]);
		
	for (int j = m - 1; j >= 0; --j)
	for (int i = 0; i < n; ++i) {
		int nxt = (i + 1) % n;
		int l = j + 1, r = min(j + k, m);
		bool gd = 0;
		f[i][j] = f[i][j + 1];
		
		if (a[i] != a[nxt])
			gd = ((f[nxt][l] - f[nxt][r + 1]) != (r - l + 1));
			
		if (a[i] == a[nxt])
			gd = ((f[nxt][l] - f[nxt][r + 1]) > 0);
		
/*		if (a[i] != a[nxt]) {
			for (int l = j + 1; l <= min(j + k, m); ++l)
				gd |= !(f[nxt][l]);
		} else {
			for (int l = j + 1; l <= min(j + k, m); ++l)
				gd |= f[nxt][l];
		}
*/		
		f[i][j] += gd;
	}
	
	for (int i = 0; i < n; ++i)
		cout << (f[i][0] != f[i][1] ? a[i] : a[i] ^ 1) << ' ';
}
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 384 KB Output is correct
2 Correct 5 ms 640 KB Output is correct
3 Correct 5 ms 640 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 1280 KB Output is correct
2 Correct 5 ms 768 KB Output is correct
3 Correct 6 ms 1408 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 1536 KB Output is correct
2 Correct 5 ms 1408 KB Output is correct
3 Correct 6 ms 1536 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 2048 KB Output is correct
2 Correct 7 ms 2432 KB Output is correct
3 Correct 6 ms 2304 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 3072 KB Output is correct
2 Correct 7 ms 2816 KB Output is correct
3 Correct 7 ms 2688 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 2688 KB Output is correct
2 Correct 7 ms 2816 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 62 ms 19188 KB Output is correct
2 Correct 69 ms 20728 KB Output is correct
3 Correct 439 ms 94840 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 141 ms 38264 KB Output is correct
2 Correct 403 ms 94560 KB Output is correct
3 Correct 138 ms 41080 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 485 ms 95584 KB Output is correct
2 Correct 9 ms 2560 KB Output is correct
3 Correct 7 ms 1664 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 476 ms 96248 KB Output is correct
2 Correct 357 ms 96380 KB Output is correct
3 Correct 553 ms 96696 KB Output is correct