Submission #927162

#TimeUsernameProblemLanguageResultExecution timeMemory
927162vjudge1 Martian DNA (BOI18_dna)C++17
0 / 100
35 ms5760 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define lld long double #define pb push_back #define pf push_front #define F first #define S second #define all(a) a.begin(),a.end() #define IShowSpeed ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); const int N=2e5+10; const int K=200; const int mod=1e9+7; const ll inf=1e18+228; const int dx[]={-1,0,0,1}; const int dy[]={0,-1,1,0}; ll h[N],cnt[N],n,k,r,lol=0,ans=inf; deque<ll>v; int main() { IShowSpeed cin>>n>>k>>r; for(int i=1;i<=n;i++) cin>>h[i],cnt[i]=-inf; for(int i=1;i<=r;i++) { ll x,y; cin>>x>>y; if(cnt[x]==-inf) cnt[x]=y; else cnt[x]+=y; } for(int i=1;i<=n;i++) { if(cnt[h[i]]==-inf) continue; v.pb(i); cnt[h[i]]--; if(!cnt[h[i]]) lol++; while(cnt[h[v.front()]]<0) { cnt[h[v.front()]]++; v.pop_front(); } if(lol==r) ans=min(v.back()-v.front()+1,ans),cout<<v.back()<<" "<<v.front()<<"\n"; } if(ans==inf) cout<<"impossible"; else cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...