Submission #927180

#TimeUsernameProblemLanguageResultExecution timeMemory
927180vjudge1 Martian DNA (BOI18_dna)C++17
40 / 100
2082 ms15264 KiB
// #pragma GCC target ("avx2") // #pragma GCC optimization ("O3") // #pragma GCC optimization ("unroll-loops") #include <bits/stdc++.h> #define int long long #define ff first #define ss second #define pb push_back #define yes cout<<"Yes\n" #define no cout<<"No\n" #define no1 cout<<"-1\n" using namespace std; const int N = 2e5+100; const int M = 1e5+10; const int INF = 1e18; const int mod = 1e9+7; // int binpow (int a, int n) { // if (n == 0) // return 1; // if (n % 2 == 1) // return (binpow (a, n-1) * a)%mod; // else { // int b = binpow (a, n/2); // return (b * b)%mod; // } // } int n,k,R; int a[N]; map<int,int> m; pair<int,int> d[N]; bool ok(int x){ m.clear(); for(int i = 1;i<=x;i++){ m[a[i]]++; } int l = 1; int r = x; while(r<=n){ bool check = 1; for(int i = 1;i<=R;i++){ if(m[d[i].ff]<d[i].ss){ check = 0; } } if(check){ return 1; } r++; m[a[r]]++; m[a[l]]--; l++; } return 0; } void solve(){ cin>>n>>k>>R; for(int i = 1;i<=n;i++){ cin>>a[i]; m[a[i]]++; } for(int i = 1;i<=R;i++){ cin>>d[i].ff>>d[i].ss; if(m[d[i].ff] < d[i].ss){ cout<<"impossible\n"; return; } } int l = 0; int r = n; while(r>l+1){ int mid = (l+r)/2; if(ok(mid)) r = mid; else l = mid; } cout<<r<<'\n'; } signed main(){ ios_base::sync_with_stdio(0); cin.tie(nullptr); // cout.tie(nullptr); int t = 1; // cin>>t; // cout<<""; for(int i = 1;i<=t;i++){ // cout<<"Case "<<i<<": "; solve(); // cout<<'\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...