- #include<bits/stdc++.h>
- using namespace std;
- int m,n;
- int t=0;
- int dif=0;
- int com=0;
- unordered_map<string,int> mp;
- int main()
- {
- cin.tie(0);
- ios::sync_with_stdio(0);
- cin>>m>>n;
- string a[n];
- for(int i=0;i<n;i++)
- cin>>a[i];
- for(int i=0;i<n+1;i++)
- {
- if(i<m)
- {
- if(mp[a[i]]!=0)
- {
- mp[a[i]]+=100;
- com+=100;
- }
- else
- {
- mp[a[i]]++;
- com++;
- }
- }
- else if(i==n)
- {
- if(com==m)
- dif++;
- if(mp[a[i-m]]>100)
- {
- com-=100;
- mp[a[i-m]]-=100;
- }
- else
- {
- com-=mp[a[i-m]];
- mp[a[i-m]]--;
- }
- }
- else
- {
- if(com==m)
- dif++;
- if(mp[a[i-m]]>100)
- {
- com-=100;
- mp[a[i-m]]-=100;
- }
- else
- {
- com-=mp[a[i-m]];
- mp[a[i-m]]--;
- }
- if(mp[a[i]]!=0)
- {
- mp[a[i]]+=100;
- com+=100;
- }
- else
- {
- mp[a[i]]++;
- com++;
- }
- }
- }
- cout<<dif;
- return 0;
- }
複製代碼 |