社区讨论

CF F题代码求调

灌水区参与者 4已保存回复 9

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
9 条
当前快照
1 份
快照标识符
@lo8wjepr
此快照首次捕获于
2023/10/28 01:43
2 年前
此快照最后确认于
2023/10/28 01:43
2 年前
查看原帖
RT,是不是人均AK就我F、G都没过啊
CPP
#include<bits/stdc++.h>
#define int long long
#define Tothetime_tolife using
#define AK namespace
#define IOI std
Tothetime_tolife AK IOI;//这句话是假的
const int Mod1=998244353;
const int Mod2=1000000007;
int gcd(int a,int b){return __gcd(a,b);}
int lcm(int a,int b){return a*b/gcd(a,b);}
void read(int& x){char ch;int f=1;x=0;while(ch<'0'||ch>'9'){ch=getchar();if(ch=='-') f=-1;}while(ch>='0'&&ch<='9'){ch=getchar();x=x*10+ch-'0';}x*=f;}
void write(int x){if(x>9){write(x/10);}putchar(x%10+'0');return;}
void we(int x){write(x);printf("\n");}
void wk(int x){write(x);printf(" ");}
void wr(int x){write(x);}
void re(int x){read(x);}
const int N=200005;
int tst,x;
map<int,int> m;
signed main(){
	cin>>tst;
	while(tst--){
		m.clear();
		int n,k;
		cin>>n>>k;
		for(int i=1;i<=n;i++){
			cin>>x;
			m[x]++;
		}
		map<int,int>::iterator iter;
		int ans=0,l=-1,len=0,tmp=0,lst=m.begin()->first-1;
		for(iter=m.begin();iter!=m.end();iter++){
			int p=iter->second;
			if(p>=k && iter->first-lst==1){
				if(len==0) tmp=iter->first;
				len++;
			}else{
				if(len!=0){
					if(ans<len){
						ans=len;
						l=tmp;
					}
					len=0;
				}
			}
			lst=iter->first;
		}
		if(len!=0){
			if(ans<len){
				ans=len;
				l=tmp;
			}
			len=0;
		}
		if(l==-1) cout<<-1<<endl;
		else cout<<l<<" "<<l+ans-1<<endl;
	}
	return 0;
}
//STO 来看我程序的人 Orz

回复

9 条回复,欢迎继续交流。

正在加载回复...