답안 #941129

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
941129 2024-03-08T07:41:53 Z FKS Martian DNA (BOI18_dna) C++14
0 / 100
2000 ms 7532 KB
#include <bits/stdc++.h>
using namespace std;

#define max(a, b) (a > b ? a : b)

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	int n, k, r;cin>>n>>k>>r;
	int* dna = new int[n];
	for (int i = 0;i < n;i++)
		cin >> dna[i];

	unordered_set<int> hset;
	unordered_map<int, int> req;
	for (int i = 0;i < r;i++)
	{
		int x, y;
		cin >> x >> y;

		hset.emplace(x);
		req[x] = y;
	}

	int min_len = 1e9;
	int j = -1;
	for (int i = 0;i < n;i++)
	{
		if (i && hset.count(dna[i-1]))
			req[dna[i-1]]++;

		bool ok = false;
		for (auto& i : req)
			if (i.second > 0)
			{
				ok = true;
				break;
			}

		if (ok)		
			for (j=j+1;j < n;j++)
			{
				if (hset.count(dna[j]))
				{
					req[dna[j]]--;
				}

				ok = true;
				for (auto& i : req)
					if (i.second > 0)
					{
						ok = false;
						break;
					}

				if (ok) {
					min_len = min(min_len, j - i + 1);
					break;
				}
			}
	}

	if (min_len == 1e9)
		cout << "impossible";
	else if (min_len)
		cout << min_len;
	else if (min_len == 0)
		cout << "impossible";

	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Incorrect 1 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 14 ms 1112 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2032 ms 7532 KB Time limit exceeded
2 Halted 0 ms 0 KB -