Contest Duration: ~ (local time) (110 minutes) Back to Home

Submission #2132665

Source Code Expand

Copy
```#include <algorithm>
#include <iostream>
#include <complex>
#include <cstdio>
#include <utility>
#include <vector>
#include <cassert>
using namespace std;
typedef complex<long double> P;
typedef pair<P,P> L;
typedef pair<P,double> C;
typedef vector<P> Poly;
#define X real()
#define Y imag()
#define EPS (1e-10)
#define INF (1e15)

//2D version
namespace std{
bool operator < (const P& a, const P& b){
return a.X != b.X ? a.X < b.X : a.Y < b.Y;
}
bool operator == (const P& a, const P& b){
return abs(a-b) < EPS;
}
}

P n_vector(P a){
//aベクトルに垂直な単位ベクトル
long double l = abs(a);
return (long double)1000.0*a*P(0.0,1.0)/l;
}

int main(){
int N;
cin >> N;
vector<P> V(N);
long double x, y;
for(int i = 0; i < N; ++i){
cin >> x >> y;
V[i] = P(x,y);
}
vector< vector<long double> > A(N);
long double pi = acos(-1.0);
for(int i = 0; i < N; ++i){
for(int j = 0; j < N; ++j){
if(i == j) continue;
long double theta = arg(n_vector((long double)100.0*(V[j]-V[i])));
//if(theta < 0) theta += 2*pi;
A[i].push_back(theta);
}
}
double s = 0.0;
for(int i = 0; i < N; ++i){
long double m = -INF, M = INF;
for(int j = 0; j < A[i].size(); ++j){
long double m_ = A[i][j], M_ = A[i][j] + pi;
if(M_ > pi && M_ - 2*pi > m){
M_ -= 2*pi;
m_ -= 2*pi;
}
m = max(m,m_);
M = min(M,M_);
}
printf("%.20Lf\n",max((long double)0.0,(M-m)/pi/2.0));
s += max((long double)0.0,(M-m)/pi/2.0);
}

assert(abs(s - 1.0) < EPS);
return 0;
}
```

#### Submission Info

Submission Time 2018-02-24 22:54:25+0900 B - Holes TAB C++14 (GCC 5.4.1) 0 1655 Byte RE 102 ms 640 KB

#### Judge Result

Set Name Score / Max Score Test Cases
Sample 0 / 0 s1.txt, s2.txt
All 0 / 600 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, s1.txt, s2.txt
Case Name Status Exec Time Memory
01.txt 101 ms 512 KB
02.txt 3 ms 512 KB
03.txt 102 ms 640 KB
04.txt 3 ms 512 KB
05.txt 3 ms 512 KB
06.txt 101 ms 512 KB
07.txt 102 ms 512 KB
08.txt 102 ms 512 KB
09.txt 101 ms 512 KB
10.txt 102 ms 512 KB
11.txt 101 ms 512 KB
12.txt 102 ms 512 KB
13.txt 3 ms 512 KB
14.txt 3 ms 512 KB
15.txt 101 ms 512 KB
16.txt 101 ms 512 KB
17.txt 100 ms 512 KB
18.txt 102 ms 512 KB
19.txt 3 ms 512 KB
20.txt 3 ms 512 KB
21.txt 101 ms 256 KB
22.txt 1 ms 256 KB
23.txt 1 ms 256 KB
24.txt 1 ms 256 KB
s1.txt 1 ms 256 KB
s2.txt 1 ms 256 KB