#include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> #define Max(a,b) ((a)>(b)?(a):(b)) #define Min(a,b) ((a)<(b)?(a):(b)) using namespace std; const int N=100005,M=10005; const int inf=(1<<30); int n,m; int a[N]; bool vis[M]; void solve() { int k=0,ans=0; for(int i=1;i<=n;i++) { if(!vis[a[i]]) { vis[a[i]]=true; k++; } if(k==m) { ans++; memset(vis,0,sizeof(vis)); k=0; } } printf("%d\n",ans+1); } int main() { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",a+i); solve(); return 0; } |
Double click to view unformatted code.