#include<cstdio>
#include<algorithm>
#include<vector>
#include<queue>
#include<cstring>
long long a,b,i,j,k,m,X,Y,p=1,q=2,T1[100002],T2[100002];
long double H,x[100001],y[100001];
long double com(int ii,int jj)
{
return (H-x[ii]-x[jj])/(y[ii]+y[jj])*y[ii]*y[jj];
}
main()
{
scanf("%d",&a);
for(i=1;i<=a;i++)
{
scanf("%Lf",&x[i]);
H+=x[i];
}
for(j=1;j<=a;j++)
{
scanf("%Lf",&y[j]);
if(m<y[j])m=y[j];
}
if(a<=1000)
{
for(i=1;i<=a;i++)
{
for(j=i+1;j<=a;j++)
{
if(com(i,j)<com(p,q))p=i,q=j;
}
}
printf("%d %d",p,q);
}
else
{
for(i=1;i<=a;i++)
{
if(T1[(int)y[i]]==0)
{
T1[(int)y[i]]=i;
}
else
{
if(x[i]>=x[T1[(int)y[i]]])
{
T2[(int)y[i]]=T1[(int)y[i]];
T1[(int)y[i]]=i;
}
else if(T2[(int)y[i]]==0)T2[(int)y[i]]=i;
else if(x[i]>x[T2[(int)y[i]]])
{
T2[(int)y[i]]=i;
}
}
}
for(k=1;k<=m;k++)
{
if(T1[k])i=T1[k];
{
for(j=1;j<=m;j++)
{
if(T1[j]&&T1[j]!=i)
{
if(com(i,T1[j])<com(p,q))p=i,q=T1[j];
}
else if(T2[j])
{
if(com(i,T2[j])<com(p,q))p=i,q=T2[j];
}
}
}
}
if(p>q)printf("%d %d",q,p);
else printf("%d %d",p,q);
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
5772 KB |
Output is correct |
2 |
Correct |
0 ms |
5772 KB |
Output is correct |
3 |
Correct |
0 ms |
5772 KB |
Output is correct |
4 |
Correct |
0 ms |
5772 KB |
Output is correct |
5 |
Correct |
0 ms |
5772 KB |
Output is correct |
6 |
Correct |
0 ms |
5772 KB |
Output is correct |
7 |
Correct |
0 ms |
5772 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
5772 KB |
Output is correct |
2 |
Correct |
14 ms |
5772 KB |
Output is correct |
3 |
Correct |
0 ms |
5772 KB |
Output is correct |
4 |
Correct |
4 ms |
5772 KB |
Output is correct |
5 |
Correct |
15 ms |
5772 KB |
Output is correct |
6 |
Correct |
11 ms |
5772 KB |
Output is correct |
7 |
Correct |
15 ms |
5772 KB |
Output is correct |
8 |
Correct |
15 ms |
5772 KB |
Output is correct |
9 |
Correct |
12 ms |
5772 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
45 ms |
5772 KB |
Output is correct |
2 |
Incorrect |
49 ms |
5772 KB |
Output isn't correct |
3 |
Correct |
62 ms |
5772 KB |
Output is correct |
4 |
Correct |
39 ms |
5772 KB |
Output is correct |
5 |
Correct |
65 ms |
5772 KB |
Output is correct |
6 |
Incorrect |
45 ms |
5772 KB |
Output isn't correct |
7 |
Correct |
38 ms |
5772 KB |
Output is correct |
8 |
Incorrect |
42 ms |
5772 KB |
Output isn't correct |
9 |
Incorrect |
12 ms |
5772 KB |
Output isn't correct |
10 |
Incorrect |
42 ms |
5772 KB |
Output isn't correct |
11 |
Correct |
50 ms |
5772 KB |
Output is correct |
12 |
Incorrect |
58 ms |
5772 KB |
Output isn't correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |
2 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |
3 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |
4 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |
5 |
Incorrect |
371 ms |
5772 KB |
Output isn't correct |
6 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |
7 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |
8 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |
9 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |
10 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |
11 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |
12 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |
13 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |
14 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |
15 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |
16 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |
17 |
Execution timed out |
1000 ms |
5768 KB |
Program timed out |