Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream f("panouri.in");
- ofstream g("panouri.out");
- int n,k,i,t,st,nr,Min,v[200001],fr[20001],fr1[20001];
- int main()
- {
- f>>n>>k;
- Min=n;
- for(i=1;i<=n;i++)
- f>>v[i];
- for(i=1;i<=k;i++)
- {
- f>>t;
- fr[t]=1;
- }
- st=1;
- for(i=1;i<=n;i++)
- {
- if(fr[v[i]]==1)
- {
- fr1[v[i]]++;
- if(fr1[v[i]]==1)
- nr++;
- if(nr==k)
- {
- while(st<i&&(fr1[v[st]]==0||fr1[v[st]]>1))
- {
- fr1[v[st]]=max(0,fr1[v[st]]-1);
- st++;
- }
- if(Min>i-st)
- Min=i-st;
- }
- }
- }
- g<<Min;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement