AtCoder Regular Contest 064

Submission #1013949

Source codeソースコード

#include <algorithm>
#include <cassert>
#include <cfloat>
#include <climits>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <deque>
#include <iomanip>
#include <iostream>
#include <limits>
#include <map>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <vector>

#define FOR(i,k,n) for (int (i)=(k); (i)<(n); ++(i))
#define rep(i,n) FOR(i,0,n)
#define pb push_back
#define eb emplace_back
#define mp make_pair
#define fst first
#define snd second
#define all(v) begin(v), end(v)
#define debug(x) cerr<< #x <<": "<<x<<endl
#define debug2(x,y) cerr<< #x <<": "<< x <<", "<< #y <<": "<< y <<endl
#define INF 2*1e9
#define LL_INF 1e18

using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<vector<int> > vvi;
typedef vector<ll> vll;
typedef vector<vector<ll> > vvll;
template<class T> using vv=vector<vector< T > >;

int n;
struct Edge {
  double cost;
  int to;
};
vv<Edge> g;
vector<double> d;
typedef pair<double, int> pdi;

void dijkstra(int s) {
  d.assign(n+2, (double)LL_INF);
  priority_queue<pdi, vector<pdi>, greater<pdi> > q;
  d[s] = 0.0;
  q.push(mp(0.0, s));

  while (!q.empty()) {
    auto p = q.top();
    q.pop();
    int v = p.second;
    if (d[v] < p.first) {
      continue;
    }
    for (auto e : g[v]) {
      if (d[e.to] > d[v] + e.cost) {
        d[e.to] = d[v] + e.cost;
        q.push(mp(d[e.to], e.to));
      }
    }
  }
}

int main() {
  ll xs, ys, xg, yg;
  scanf("%lld %lld %lld %lld", &xs, &ys, &xg, &yg);
  scanf("%d", &n);
  vll x(n+2), y(n+2), r(n+2);
  x[0] = xs;
  y[0] = ys;
  r[0] = 0;
  FOR (i, 1, n+1) {
    scanf("%lld %lld %lld", &x[i], &y[i], &r[i]);
  }
  x[n+1] = xg;
  y[n+1] = yg;
  r[n+1] = 0;
  g.resize(n+2);
  rep (i, n+2) {
    FOR (j, i+1, n+2) {
      ll dx = x[i] - x[j];
      ll dy = y[i] - y[j];
      double c = sqrt(dx*dx + dy*dy) - r[i] - r[j];
      c = max(c, 0.0);
      Edge e;
      e.cost = c;
      e.to = j;
      g[i].pb(e);
      e.to = i;
      g[j].pb(e);
    }
  }

  dijkstra(0);
  double ans = d[n+1];
  printf("%.12f\n", ans);

  return 0;
}

Submission

Task問題 E - Cosmic Rays
User nameユーザ名 gosenoku
Created time投稿日時
Language言語 C++14 (Clang 3.8.0)
Status状態 AC
Score得点 600
Source lengthソースコード長 2277 Byte
File nameファイル名
Exec time実行時間 138 ms
Memory usageメモリ使用量 20720 KB

Test case

Set

Set name Score得点 / Max score Cases
Sample - 0_00.txt,0_01.txt,0_02.txt
All 600 / 600 0_00.txt,0_01.txt,0_02.txt,1_00.txt,1_01.txt,1_02.txt,1_03.txt,1_04.txt,1_05.txt,1_06.txt,1_07.txt,1_08.txt,1_09.txt,1_10.txt,1_11.txt,1_12.txt,1_13.txt,1_14.txt,1_15.txt,1_16.txt,1_17.txt,1_18.txt,1_19.txt,1_20.txt,1_21.txt,1_22.txt,1_23.txt,1_24.txt,1_25.txt,1_26.txt,1_27.txt,1_28.txt,1_29.txt,1_30.txt,1_31.txt,1_32.txt,1_33.txt,1_34.txt,1_35.txt,1_36.txt,1_37.txt,1_38.txt,1_39.txt,1_40.txt,1_41.txt,1_42.txt,1_43.txt,1_44.txt,1_45.txt

Test case

Case name Status状態 Exec time実行時間 Memory usageメモリ使用量
0_00.txt AC 3 ms 256 KB
0_01.txt AC 3 ms 256 KB
0_02.txt AC 3 ms 256 KB
1_00.txt AC 3 ms 256 KB
1_01.txt AC 3 ms 256 KB
1_02.txt AC 42 ms 16640 KB
1_03.txt AC 43 ms 17020 KB
1_04.txt AC 40 ms 16640 KB
1_05.txt AC 42 ms 17148 KB
1_06.txt AC 39 ms 16384 KB
1_07.txt AC 40 ms 16512 KB
1_08.txt AC 42 ms 17020 KB
1_09.txt AC 42 ms 16784 KB
1_10.txt AC 43 ms 16676 KB
1_11.txt AC 41 ms 16656 KB
1_12.txt AC 41 ms 16892 KB
1_13.txt AC 43 ms 16640 KB
1_14.txt AC 44 ms 17148 KB
1_15.txt AC 44 ms 17148 KB
1_16.txt AC 43 ms 16896 KB
1_17.txt AC 44 ms 17020 KB
1_18.txt AC 43 ms 16928 KB
1_19.txt AC 44 ms 17148 KB
1_20.txt AC 42 ms 16512 KB
1_21.txt AC 40 ms 16640 KB
1_22.txt AC 43 ms 17020 KB
1_23.txt AC 43 ms 17020 KB
1_24.txt AC 43 ms 17148 KB
1_25.txt AC 42 ms 16768 KB
1_26.txt AC 45 ms 17020 KB
1_27.txt AC 42 ms 16892 KB
1_28.txt AC 43 ms 17168 KB
1_29.txt AC 43 ms 17168 KB
1_30.txt AC 43 ms 16512 KB
1_31.txt AC 43 ms 16640 KB
1_32.txt AC 42 ms 17184 KB
1_33.txt AC 42 ms 16640 KB
1_34.txt AC 41 ms 16256 KB
1_35.txt AC 42 ms 16512 KB
1_36.txt AC 42 ms 16512 KB
1_37.txt AC 42 ms 16384 KB
1_38.txt AC 138 ms 20720 KB
1_39.txt AC 138 ms 20720 KB
1_40.txt AC 136 ms 20628 KB
1_41.txt AC 137 ms 20720 KB
1_42.txt AC 41 ms 16892 KB
1_43.txt AC 44 ms 17148 KB
1_44.txt AC 43 ms 17168 KB
1_45.txt AC 48 ms 17548 KB