Advertisement
Josif_tepe

Untitled

Sep 27th, 2024
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.90 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <queue>
  4. using namespace std;
  5.  
  6. int main() {
  7.     int n, k, m;
  8.     cin >> n >> k >> m;
  9.    
  10.     vector<int> v(n);
  11.     for(int i = 0; i < n; i++) {
  12.         cin >> v[i];
  13.     }
  14.     vector<int> req(k + 1, 0);
  15.     for(int i = 0; i < m; i++) {
  16.         int a, b;
  17.         cin >> a >> b;
  18.         req[a] = b;
  19.     }
  20.    
  21.     int j = 0;
  22.     int cnt = m;
  23.     int res = 2e9;
  24.     for(int i = 0; i < n; i++) {
  25.         while(cnt > 0 and j < n) {
  26.             req[v[j]]--;
  27.             if(req[v[j]] == 0) {
  28.                 cnt--;
  29.             }
  30.             j++;
  31.         }
  32.         if(cnt == 0) {
  33.             res = min(res, j - i);
  34.         }
  35.         req[v[i]]++;
  36.         if(req[v[i]] > 0) {
  37.             cnt++;
  38.         }
  39.     }
  40.     if(res == 2e9) {
  41.         cout << "impossible" << endl;
  42.     }
  43.     else {
  44.         cout << res << endl;
  45.     }
  46.     return 0;
  47. }
  48.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement