Submission #7287509
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int n;
struct node{
double x,y;
}k[102];
double dis(double a,double b){return sqrt(a*a+b*b);}
bool cmp(node a,node b){return a.x>b.x;}
bool cmp2(node a,node b){return a.x<b.x;}
bool cmp3(node a,node b){return a.y>b.y;}
bool cmp4(node a,node b){return a.y<b.y;}
bool cmp5(node a,node b){return dis(a.x,a.y)>dis(b.x,b.y);}
bool cmp6(node a,node b){return dis(a.x,a.y)<dis(b.x,b.y);}
double ans;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>k[i].x>>k[i].y;
sort(k+1,k+n+1,cmp);
for(int i=1;i<=n;i++){
double xx=k[i].x,yy=k[i].y;
for(int j=1;j<=n;j++)
if(i!=j&&dis(xx+k[j].x,yy+k[j].y)>dis(xx,yy))
xx+=k[j].x,yy+=k[j].y;
ans=max(ans,dis(xx,yy));
}
sort(k+1,k+n+1,cmp2);
for(int i=1;i<=n;i++){
double xx=k[i].x,yy=k[i].y;
for(int j=1;j<=n;j++)
if(i!=j&&dis(xx+k[j].x,yy+k[j].y)>dis(xx,yy))
xx+=k[j].x,yy+=k[j].y;
ans=max(ans,dis(xx,yy));
}
sort(k+1,k+n+1,cmp3);
for(int i=1;i<=n;i++){
double xx=k[i].x,yy=k[i].y;
for(int j=1;j<=n;j++)
if(i!=j&&dis(xx+k[j].x,yy+k[j].y)>dis(xx,yy))
xx+=k[j].x,yy+=k[j].y;
ans=max(ans,dis(xx,yy));
}
sort(k+1,k+n+1,cmp4);
for(int i=1;i<=n;i++){
double xx=k[i].x,yy=k[i].y;
for(int j=1;j<=n;j++)
if(i!=j&&dis(xx+k[j].x,yy+k[j].y)>dis(xx,yy))
xx+=k[j].x,yy+=k[j].y;
ans=max(ans,dis(xx,yy));
}
sort(k+1,k+n+1,cmp5);
for(int i=1;i<=n;i++){
double xx=k[i].x,yy=k[i].y;
for(int j=1;j<=n;j++)
if(i!=j&&dis(xx+k[j].x,yy+k[j].y)>dis(xx,yy))
xx+=k[j].x,yy+=k[j].y;
ans=max(ans,dis(xx,yy));
}
sort(k+1,k+n+1,cmp6);
for(int i=1;i<=n;i++){
double xx=k[i].x,yy=k[i].y;
for(int j=1;j<=n;j++)
if(i!=j&&dis(xx+k[j].x,yy+k[j].y)>dis(xx,yy))
xx+=k[j].x,yy+=k[j].y;
ans=max(ans,dis(xx,yy));
}
srand(time(0));
for(int i=1;i<=1000;i++){
int pd[102],num=0;
double xx=0,yy=0;
memset(pd,0,sizeof(pd));
for(int j=1;j<=n;j++){
int op=rand()%n+1;
while(pd[op])op=rand()%n+1;
if(dis(xx+k[op].x,yy+k[op].y)>dis(xx,yy))
xx+=k[op].x,yy+=k[op].y;
pd[op]=1;
}
ans=max(ans,dis(xx,yy));
}
printf("%.15lf",ans);
return 0;
}
Submission Info
| Submission Time |
|
| Task |
F - Engines |
| User |
Alex_Wei |
| Language |
C++14 (GCC 5.4.1) |
| Score |
600 |
| Code Size |
2203 Byte |
| Status |
AC |
| Exec Time |
11 ms |
| Memory |
256 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
600 / 600 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt, 00-sample-04.txt, 00-sample-05.txt, 00-sample-06.txt, 00-sample-07.txt |
| All |
00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt, 00-sample-04.txt, 00-sample-05.txt, 00-sample-06.txt, 00-sample-07.txt, 01-random-very-small-01.txt, 01-random-very-small-02.txt, 01-random-very-small-03.txt, 02-random-small-01.txt, 02-random-small-02.txt, 02-random-small-03.txt, 03-random-01.txt, 03-random-02.txt, 03-random-03.txt, 04-zero-01.txt, 05-same-01.txt, 05-same-02.txt, 06-linear-01.txt, 06-linear-02.txt, 06-linear-03.txt, 07-linear-positive-01.txt, 07-linear-positive-02.txt, 07-linear-positive-03.txt, 08-90-degree-01.txt, 08-90-degree-02.txt, 09-180-degree-01.txt, 09-180-degree-02.txt, 10-sandglass-01.txt, 10-sandglass-02.txt, 11-circle-01.txt, 11-circle-02.txt, 11-circle-03.txt, 11-circle-04.txt, 11-circle-05.txt, 12-square-01.txt, 12-square-02.txt, 12-square-03.txt, 13-corner-01.txt, 13-corner-02.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 00-sample-01.txt |
AC |
1 ms |
256 KiB |
| 00-sample-02.txt |
AC |
1 ms |
256 KiB |
| 00-sample-03.txt |
AC |
1 ms |
256 KiB |
| 00-sample-04.txt |
AC |
1 ms |
256 KiB |
| 00-sample-05.txt |
AC |
1 ms |
256 KiB |
| 00-sample-06.txt |
AC |
1 ms |
256 KiB |
| 00-sample-07.txt |
AC |
2 ms |
256 KiB |
| 01-random-very-small-01.txt |
AC |
2 ms |
256 KiB |
| 01-random-very-small-02.txt |
AC |
10 ms |
256 KiB |
| 01-random-very-small-03.txt |
AC |
11 ms |
256 KiB |
| 02-random-small-01.txt |
AC |
2 ms |
256 KiB |
| 02-random-small-02.txt |
AC |
11 ms |
256 KiB |
| 02-random-small-03.txt |
AC |
11 ms |
256 KiB |
| 03-random-01.txt |
AC |
2 ms |
256 KiB |
| 03-random-02.txt |
AC |
11 ms |
256 KiB |
| 03-random-03.txt |
AC |
11 ms |
256 KiB |
| 04-zero-01.txt |
AC |
9 ms |
256 KiB |
| 05-same-01.txt |
AC |
4 ms |
256 KiB |
| 05-same-02.txt |
AC |
10 ms |
256 KiB |
| 06-linear-01.txt |
AC |
2 ms |
256 KiB |
| 06-linear-02.txt |
AC |
5 ms |
256 KiB |
| 06-linear-03.txt |
AC |
11 ms |
256 KiB |
| 07-linear-positive-01.txt |
AC |
3 ms |
256 KiB |
| 07-linear-positive-02.txt |
AC |
6 ms |
256 KiB |
| 07-linear-positive-03.txt |
AC |
10 ms |
256 KiB |
| 08-90-degree-01.txt |
AC |
9 ms |
256 KiB |
| 08-90-degree-02.txt |
AC |
10 ms |
256 KiB |
| 09-180-degree-01.txt |
AC |
7 ms |
256 KiB |
| 09-180-degree-02.txt |
AC |
11 ms |
256 KiB |
| 10-sandglass-01.txt |
AC |
7 ms |
256 KiB |
| 10-sandglass-02.txt |
AC |
11 ms |
256 KiB |
| 11-circle-01.txt |
AC |
1 ms |
256 KiB |
| 11-circle-02.txt |
AC |
2 ms |
256 KiB |
| 11-circle-03.txt |
AC |
2 ms |
256 KiB |
| 11-circle-04.txt |
AC |
6 ms |
256 KiB |
| 11-circle-05.txt |
AC |
10 ms |
256 KiB |
| 12-square-01.txt |
AC |
9 ms |
256 KiB |
| 12-square-02.txt |
AC |
11 ms |
256 KiB |
| 12-square-03.txt |
AC |
11 ms |
256 KiB |
| 13-corner-01.txt |
AC |
1 ms |
256 KiB |
| 13-corner-02.txt |
AC |
1 ms |
256 KiB |