模拟60分,没次数了,能给个测试点吗?
查看原帖
模拟60分,没次数了,能给个测试点吗?
568637
liang302楼主2021/11/15 18:02
#include<bits/stdc++.h>
#define max 100005
using namespace std;
int a[5000],b[5000];
int w,l;
int main() {int t;
	int m,n,l=1,r=1;
	cin>>n>>m;int cnt=0;
	for(int i=1;i<=m;i++){
		cin>>t;
		//没有满 a存有没有这个数字  b存存了多少个 
		if(r-l<n){//右减左,也就是没有满的话 
			if(cnt!=0) 
			for(int i=l;i<=r;i++){
				if(b[i]==t) goto stop;
			}
			a[t]=1;
			b[r]=t;
			r++;
			cnt++;
			
		}
		
		
		else {// 
			for(int i=l;i<=r;i++){
				if(b[i]==t) goto stop;
				//说明在字典里找到 直接下一次操作 
			}
			
			a[b[l]]=0;
			l++;
			a[t]=1;//没找到自然要进行下一步 
			b[r]=t;
			r++;
			cnt++; 
		}
		stop:;
	}
	cout<<cnt;
	return 0;
}





2021/11/15 18:02
加载中...