队列,用unordered_set查找

#include<bits/stdc++.h>
using namespace std;
int main(){
    int m,n;
    cin>>m>>n;
    queue<int>t;
    unordered_set<int>fin;
    int ans=0;
    while(n--){
        int i;
        cin>>i;
        if(fin.find(i)==fin.end()){
            t.push(i);
            fin.insert(i);
            ans++;
        }
        if(t.size()>m){
            int d=t.front();
            fin.erase(d);
            t.pop();
        }
    }
    cout<<ans;
}