建议加强数据
查看原帖
建议加强数据
87318
猫猬兽楼主2021/7/29 11:49

暴力过了,最大点1.00s

#include<iostream>
#include<cstdio>
using namespace std;
long long n,a[50005],b[50005],s;
inline long long read()
{
	long long s=0,c=0;
	while(c<'0'||c>'9')c=getchar();
	while(c>='0'&&c<='9'){s=s*10+c-'0';c=getchar();}
	return s;
}
inline void out(int x)
{
	if(x>=10)out(x/10);
	putchar(x%10+'0');
}
int main()
{
	n=read();
	for(register int i=1;i<=n;++i)
	a[i]=read(),b[i]=read();
	for(register int i=1;i<=n;++i)
	{
		s=1;
		for(register int j=i+1;j<=n;j+=5)
		{
			if((a[j]-b[i])*(b[j]+b[i])==a[j]*b[i]+a[i]*b[j])
			{
				--s;
				out(j);putchar('\n');
				break;
			}
			if((a[j+1]-b[i])*(b[j+1]+b[i])==a[j+1]*b[i]+a[i]*b[j+1]&&j+1<=n)
			{
				--s;
				out(j+1);putchar('\n');
				break;
			}
			if((a[j+2]-b[i])*(b[j+2]+b[i])==a[j+2]*b[i]+a[i]*b[j+2]&&j+2<=n)
			{
				--s;
				out(j+2);putchar('\n');
				break;
			}
			if((a[j+3]-b[i])*(b[j+3]+b[i])==a[j+3]*b[i]+a[i]*b[j+3]&&j+3<=n)
			{
				--s;
				out(j+3);putchar('\n');
				break;
			}
			if((a[j+4]-b[i])*(b[j+4]+b[i])==a[j+4]*b[i]+a[i]*b[j+4]&&j+4<=n)
			{
				--s;
				out(j+4);putchar('\n');
				break;
			}
		}
		if(s==1)printf("-1\n");
	}
    return 0;
}
2021/7/29 11:49
加载中...