WA求调
查看原帖
WA求调
1102547
pumpig楼主2024/9/25 18:27

用的multiset,每输入一个检查一次,最后有一半WA了

#include <iostream>
#include <set>
using namespace std;
multiset<int> num;
int n,k;
long long t;
int cal(){
	long long sum=0;
	long long vs=0;
	auto a=num.begin();
	auto b=num.begin();
	int i=1;
	for(i;i<k;i++){
		sum+=*b;
		vs+=((*b)*(*b));
		b++;
	}
	while(b!=num.end()){
		sum+=*b;
		vs+=((*b)*(*b));
		double ave=(sum*1.0)/k;
		if((vs-k*ave*ave)/k<=t)
			return 1;
		sum-=*a;
		vs-=((*a)*(*a));
		a++;
		b++;
	}
	return 0;
}
int main(){
	cin>>n>>k>>t;
	int i;
	for(i=1;i<=n;i++){
		int p;
		cin>>p;
		num.insert(p);
		if(i>=k){
			if(cal()){
				cout<<i;
				break;
			}
		}
	}
	if(i>n)
		cout<<"-1";
	return 0;
}
2024/9/25 18:27
加载中...