답안 #462479

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
462479 2021-08-10T16:04:13 Z _Avocado_ Martian DNA (BOI18_dna) C++14
16 / 100
117 ms 12908 KB
#include <bits/stdc++.h>
#define int int64_t
using namespace std;

signed main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	
	int n, k, q; cin>>n>>k>>q;
	
	vector<int>v(n);
	
	for(auto&u: v) cin>>u;
	
	vector<int>goal(k);
	
	for(int i = 0; i<q; ++i){
		int a, b; cin>>a>>b;
		goal[a] = b;
	}
	
	//for(auto u: goal) cout<<u<<" ";
	//cout<<endl;
	
	int ans = 1e9;
	int start = 0;
	
	vector<int>cur(k);
	map<int, int>full;
	
	for(int i = 0; i<n; ++i){
		++cur[v[i]];
		while(cur[v[i]] > goal[v[i]] || !goal[v[start]]){
			if(cur[v[i]] > goal[v[i]] && v[start] == v[i]){
				--cur[v[start]];
				++start;
			}
			else if(!goal[v[start]]) ++start;
			else break;
			if(start == i) break;
			
			//cout<<start<<endl;
		}
		if(cur[v[i]] >= goal[v[i]] && goal[v[i]] != 0) full[v[i]] = 1; 
		if(full.size() == q) ans = min(ans, i-start+1);
		
	} 
	
	
	if(ans == 1e9) cout<<"impossible";
	else cout<<ans;

	
	
	cout<<'\n';
}

Compilation message

dna.cpp: In function 'int main()':
dna.cpp:45:18: warning: comparison of integer expressions of different signedness: 'std::map<long int, long int>::size_type' {aka 'long unsigned int'} and 'int64_t' {aka 'long int'} [-Wsign-compare]
   45 |   if(full.size() == q) ans = min(ans, i-start+1);
      |      ~~~~~~~~~~~~^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 0 ms 204 KB Output is correct
5 Correct 0 ms 204 KB Output is correct
6 Correct 0 ms 308 KB Output is correct
7 Correct 0 ms 204 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Incorrect 1 ms 332 KB Output isn't correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 24 ms 2264 KB Output is correct
2 Correct 18 ms 2252 KB Output is correct
3 Correct 21 ms 2256 KB Output is correct
4 Correct 18 ms 2252 KB Output is correct
5 Correct 23 ms 4172 KB Output is correct
6 Correct 17 ms 2252 KB Output is correct
7 Correct 18 ms 2380 KB Output is correct
8 Correct 28 ms 6216 KB Output is correct
9 Incorrect 21 ms 2820 KB Output isn't correct
10 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 108 ms 9480 KB Output is correct
2 Correct 86 ms 8172 KB Output is correct
3 Correct 41 ms 5340 KB Output is correct
4 Correct 17 ms 2252 KB Output is correct
5 Correct 44 ms 5396 KB Output is correct
6 Incorrect 117 ms 12908 KB Output isn't correct
7 Halted 0 ms 0 KB -