답안 #462456

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
462456 2021-08-10T14:50:14 Z _Avocado_ Martian DNA (BOI18_dna) C++14
16 / 100
111 ms 13004 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(start == i) break;
			if(cur[v[i]] > goal[v[i]] && v[start] == v[i]){
				--cur[v[start]];
				++start;
			}
			else if(!goal[v[start]]) ++start;
			else 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);
		//for(auto u: cur) cout<<u<<" ";
		//cout<<endl;
		//cout<<start<<" "<<full.size()<<endl;
	} 
	
	
	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 1 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
6 Correct 1 ms 308 KB Output is correct
7 Correct 1 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 320 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 3 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 18 ms 2252 KB Output is correct
2 Correct 18 ms 2264 KB Output is correct
3 Correct 20 ms 2292 KB Output is correct
4 Correct 19 ms 2264 KB Output is correct
5 Correct 25 ms 4176 KB Output is correct
6 Correct 17 ms 2260 KB Output is correct
7 Correct 20 ms 2384 KB Output is correct
8 Correct 26 ms 6208 KB Output is correct
9 Incorrect 21 ms 2892 KB Output isn't correct
10 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 111 ms 9956 KB Output is correct
2 Correct 92 ms 8400 KB Output is correct
3 Correct 40 ms 5320 KB Output is correct
4 Correct 17 ms 2252 KB Output is correct
5 Correct 53 ms 5580 KB Output is correct
6 Incorrect 97 ms 13004 KB Output isn't correct
7 Halted 0 ms 0 KB -