제출 #1360509

#제출 시각아이디문제언어결과실행 시간메모리
1360509VahanAbraham벽 칠하기 (APIO20_paint)C++20
51 / 100
289 ms589824 KiB
#define _CRT_SECURE_NO_WARNINGS
#include "paint.h"
#include <iostream>
#include <map>
#include <vector>
#include <set>
#include <stack>
#include <queue>
#include <bitset>
#include <string>
#include <cstring>
#include <algorithm>
#include <random>
#include <chrono>
#include <math.h>
#include <cmath>
#include <iomanip>
#include <cassert>

using namespace std;

#define ll long long
#define fr first
#define sc second
#define pb push_back

const int N = 200005;
const ll oo = 1000000000000000, MOD = 1000000007;


int minimumInstructions(int n, int m, int k, vector<int> C,vector<int> A,
	vector<vector<int>> B) {
	vector<vector<bool>> ok(m + 2);
	for (int i = 0; i < m; ++i) {
		ok[i].resize(k + 4);
		for (int num : B[i]) {
			ok[i][num] = 1;
		}
	}
	vector<int> hnaravor_vec;
	for (int i = 0; i <= n-m; ++i) {
		for (int start = 0; start < m; ++start) {
			bool fl = 1;
			for (int j = 0; j < m; ++j) {
				int ashxatoxi_hamar = (start + j) % m;
				int pati_hamar = (i + j);
				if (ok[ashxatoxi_hamar][C[pati_hamar]] == 0) {
					fl = 0;
					break;
				}
			}
			if (fl) {
				hnaravor_vec.pb(i);
				break;
			}
		}
	}
	if (hnaravor_vec.size() == 0) {
		return -1;
	}
	if (hnaravor_vec[0] != 0 || hnaravor_vec.back() != n - m) {
		return -1;
	}
	int l = 1, r = m;
	int cnt = 1;
	for (int i = 1; i < hnaravor_vec.size(); ++i) {
		if (hnaravor_vec[i] > r) {
			return -1;
		}
		if (i == hnaravor_vec.size() - 1) {
			++cnt;
			break;
		}
		if (hnaravor_vec[i + 1] > r) {
			++cnt;
			l = hnaravor_vec[i] + 1;
			r = l + m - 1;
		}
	}
	return cnt;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…