Submission #1286629

#TimeUsernameProblemLanguageResultExecution timeMemory
1286629SmuggingSpun Martian DNA (BOI18_dna)C++20
100 / 100
21 ms1920 KiB
#include<bits/stdc++.h>
#define taskname "B"
using namespace std;
template<class T>void minimize(T& a, T b){
	if(a > b){
		a = b;
	}
}
int main(){
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	if(fopen(taskname".inp", "r")){
		freopen(taskname".inp", "r", stdin);
	}
	int n, k, R;
	cin >> n >> k >> R;
	vector<int>a(n + 1), cnt(k + 1, 0);
	for(int i = 1; i <= n; i++){
		cin >> a[i];
	}
	int r = 1;
	for(int i = 0; i < R; i++){
		int b, q;
		cin >> b >> q;
		cnt[b] += q;
		while(r <= n && cnt[b] > 0){
			cnt[a[r++]]--;
		}
		if(cnt[b] > 0){
			return cout << "impossible", 0;
		}
	}
	int ans = r - 1;
	for(int l = 1; l < n; l++){
		cnt[a[l]]++;
		while(r <= n && cnt[a[l]] > 0){
			cnt[a[r++]]--;
		}
		if(cnt[a[l]] > 0){
			break;
		}
		minimize(ans, r - l - 1);
	}
	cout << ans;
}

Compilation message (stderr)

dna.cpp: In function 'int main()':
dna.cpp:12:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |                 freopen(taskname".inp", "r", stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...