結果
問題 | No.168 ものさし |
ユーザー |
![]() |
提出日時 | 2015-03-20 00:55:56 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 80 ms / 2,000 ms |
コード長 | 1,087 bytes |
コンパイル時間 | 1,164 ms |
コンパイル使用メモリ | 159,212 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-24 07:00:14 |
合計ジャッジ時間 | 2,423 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 19 |
ソースコード
#include <bits/stdc++.h>#define REP(i, x, n) for(int i = x; i < (int)(n); i++)#define rep(i, n) REP(i, 0, n)#define all(x) (x).begin(), (x).end()#define rall(x) (x).rbegin(), (x).rend()#define F first#define S second#define mp make_pairusing namespace std;typedef long long ll;typedef unsigned long long ull;typedef pair<int, int> P;const double EPS = 1e-9;int N;long double X[1000], Y[1000];bool visited[1000];bool flg;void rec(int idx, ll L) {visited[idx] = true;if(idx == N - 1) {flg = true;}if(flg) return;rep(i, N) {if(i == idx || visited[i]) continue;if(sqrt(pow(X[i] - X[idx], 2) + pow(Y[i] - Y[idx], 2)) <= L) {rec(i, L);}}}int main() {// ios_base::sync_with_stdio(false);cin >> N;rep(i, N) cin >> X[i] >> Y[i];ll lb = 0;ll ub = 1e18;while(ub - lb > 1) {ll mid = (lb + ub) / 2;memset(visited, false, sizeof(visited));flg = false;rec(0, mid);if(flg) ub = mid;else lb = mid;}ll ans = lb / 10 * 10 + 10;cout << ans << endl;return 0;}