50分啊啊啊啊啊,WA5个点,求大佬查错
查看原帖
50分啊啊啊啊啊,WA5个点,求大佬查错
369479
Aishiteru_zwy楼主2020/10/11 21:22
#include "cstdio"
#include "cstring"
#include "cmath"
using namespace std;
int f[1005];
double g[1005][1005],minn[505];
bool dot[505];
struct tree{
	int from,to;
}a[1005];

int main (){
	int m,n,ans=0,k,x,y,max=0;
	scanf ("%d",&m);
	for (int i=1;i<=m;i++) scanf ("%d",&f[i]);
	scanf ("%d",&n);
	for (int i=1;i<=n;i++) scanf ("%d%d",&a[i].from,&a[i].to);
	for (int i=1;i<=n;i++)
		for (int j=1;j<=n;j++)
			g[i][j]=sqrt((a[i].from-a[j].from)*(a[i].from-a[j].from)+(a[i].to-a[j].to)*(a[i].to-a[j].to));
	memset(minn,127,sizeof(minn));
	minn[1]=0;
	memset(dot,1,sizeof(dot));
	for (int i=1;i<=n;i++){
		k=0;
		for (int j=1;j<=n;j++)
			if (dot[j]&&minn[j]<minn[k]) k=j;
		dot[k]=0;
		for (int j=1;j<=n;j++)
			if (dot[j]&&g[k][j]<minn[j]) minn[j]=g[k][j];
	}
	for (int i=1;i<=n;i++) if (max<minn[i]) max=minn[i];
	for (int i=1;i<=n;i++) if (f[i]>=max) ans++;
	printf ("%d",ans);
	return 0;
}

求助各位大佬,实在找不出错,谢谢

2020/10/11 21:22
加载中...