Submission #1630637


Source Code Expand

#include <bits/stdc++.h>
#define REP(i, a, n) for(ll i = ((ll) a); i < ((ll) n); i++)
using namespace std;
typedef long long ll;
typedef pair<double, ll> pdl;

struct point { double x, y; };
struct line { point p, q; };

ll N, K;

double distance(line l, point p) {
  double ux = l.q.x - l.p.x;
  double uy = l.q.y - l.p.y;
  double vx = p.x - l.p.x;
  double vy = p.y - l.p.y;
  double cross = abs(ux * vy - uy * vx);
  double ul = sqrt(ux * ux + uy * uy);
  return cross / ul;
}

int main(void) {
  cin >> N >> K;

  vector<pdl> triangles;
  for(ll i = 1; i * 3 <= N; i++) {
    for(ll j = i * 2; j <= (i + N) / 2; j++) {
      double theta = 2 * M_PI / N;
      point p1 = (point) { 1, 0 };
      point p2 = (point) { cos(theta * i), sin(theta * i) };
      point p3 = (point) { cos(theta * j), sin(theta * j) };
      double a = sqrt(pow(p2.x - p1.x, 2) + pow(p2.y - p1.y, 2));
      double h = distance((line) { p1, p2 }, p3);
      double s = a * h / 2;
      ll cnt, e1 = i, e2 = j - i, e3 = N - j;
      if(e1 == e2 && e2 == e3) cnt = i;
      else if(e1 == e2 || e2 == e3 || e3 == e1) cnt = N;
      else cnt = N * 2;
      triangles.push_back(pdl(s, cnt));
    }
  }

  sort(triangles.begin(), triangles.end());

  ll sum = 0;
  REP(i, 0, triangles.size()) {
    sum += triangles[i].second;
    if(sum >= K) {
      printf("%.15lf\n", triangles[i].first);
      return 0;
    }
  }
}

Submission Info

Submission Time
Task E - Circle and Many Triangles
User kshinya
Language C++14 (GCC 5.4.1)
Score 400
Code Size 1447 Byte
Status TLE
Exec Time 2104 ms
Memory 526292 KB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3
Score / Max Score 0 / 0 160 / 160 240 / 240 0 / 450
Status
AC × 3
AC × 9
AC × 15
AC × 18
TLE × 3
Set Name Test Cases
Sample sample_1.txt, sample_2.txt, sample_3.txt
Subtask1 sample_1.txt, sample_2.txt, sample_3.txt, sub1_in1.txt, sub1_in2.txt, sub1_in3.txt, sub1_in4.txt, sub1_in5.txt, sub1_in6.txt
Subtask2 sample_1.txt, sample_2.txt, sample_3.txt, sub1_in1.txt, sub1_in2.txt, sub1_in3.txt, sub1_in4.txt, sub1_in5.txt, sub1_in6.txt, sub2_in1.txt, sub2_in2.txt, sub2_in3.txt, sub2_in4.txt, sub2_in5.txt, sub2_in6.txt
Subtask3 sample_1.txt, sample_2.txt, sample_3.txt, sub1_in1.txt, sub1_in2.txt, sub1_in3.txt, sub1_in4.txt, sub1_in5.txt, sub1_in6.txt, sub2_in1.txt, sub2_in2.txt, sub2_in3.txt, sub2_in4.txt, sub2_in5.txt, sub2_in6.txt, sub3_in1.txt, sub3_in2.txt, sub3_in3.txt, sub3_in4.txt, sub3_in5.txt, sub3_in6.txt
Case Name Status Exec Time Memory
sample_1.txt AC 5 ms 512 KB
sample_2.txt AC 1 ms 256 KB
sample_3.txt AC 1 ms 256 KB
sub1_in1.txt AC 1 ms 256 KB
sub1_in2.txt AC 1 ms 256 KB
sub1_in3.txt AC 1 ms 256 KB
sub1_in4.txt AC 1 ms 256 KB
sub1_in5.txt AC 1 ms 256 KB
sub1_in6.txt AC 1 ms 256 KB
sub2_in1.txt AC 4 ms 640 KB
sub2_in2.txt AC 4 ms 640 KB
sub2_in3.txt AC 4 ms 640 KB
sub2_in4.txt AC 16 ms 2420 KB
sub2_in5.txt AC 16 ms 2420 KB
sub2_in6.txt AC 16 ms 2420 KB
sub3_in1.txt AC 1581 ms 132316 KB
sub3_in2.txt AC 1602 ms 131932 KB
sub3_in3.txt AC 1594 ms 131804 KB
sub3_in4.txt TLE 2104 ms 525140 KB
sub3_in5.txt TLE 2104 ms 526292 KB
sub3_in6.txt TLE 2104 ms 526164 KB