Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
74228 | 陶俊宸 | 听音乐 | C++ | 通过 | 100 | 19 MS | 1548 KB | 645 | 2023-05-20 17:42:39 |
#include<cstdio> bool f[200000]; int n,m,a[100000],cnt[100000],ocnt,ans; int main(){ scanf("%d %d",&n,&m); for(int i=0;i<m;i++){ scanf("%d",&a[i]); a[i]--; if(cnt[a[i]]==1) ocnt++; cnt[a[i]]++; if(i>=n){ if(cnt[a[i-n]]==2) ocnt--; cnt[a[i-n]]--; } f[i]=ocnt; } for(int i=m;i<m+n;i++){ if(cnt[a[i-n]]==2) ocnt--; cnt[a[i-n]]--; f[i]=ocnt; } // for(int i=0;i<m+n;i++) printf("%d ",f[i]); // printf("\n"); for(int i=0;i<n;i++){ bool flag=true; for(int j=0;n*j+i<m+n;j++){ if(f[n*j+i]){ flag=false; break; } } if(flag) ans++; } printf("%d",ans); return 0; }