結果

問題 No.168 ものさし
ユーザー ttakano
提出日時 2017-12-09 10:16:36
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
AC  
実行時間 89 ms / 2,000 ms
コード長 1,555 bytes
コンパイル時間 1,385 ms
コンパイル使用メモリ 160,872 KB
実行使用メモリ 11,376 KB
最終ジャッジ日時 2024-12-24 07:19:48
合計ジャッジ時間 2,746 ms
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 19
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include "bits/stdc++.h"
using namespace std;
#define print(x) cout<<x<<endl;
#define rep(i,a,b) for(int i=a;i<b;i++)
#define REP(i,a) for(int i=0;i<a;i++)
#define printall(n,array) {for(int i=0;i<n;i++){cout<<array[i]<<" ";}cout<<endl;}
#define U() cout<<endl;
typedef long long ll;
typedef pair<int, int> PI;
typedef pair<int, PI> V;
typedef vector<int> VE;
const ll mod = 10000000007; //10^9+7
int n;
ll x[1003];
ll y[1003];
ll d[1003][1003];
int par[10002]; //
int myrank[10002]; //
void init(int n){ //
REP(i,n){
par[i]=i;
myrank[i]=0;
}
}
int find(int x){ //
if(par[x]==x){
return x;
}else{
return par[x]=find(par[x]);
}
}
void unit(int x, int y){ //x,y
x=find(x);
y=find(y);
if(x==y)return;
if(myrank[x]<myrank[y]){
par[x]=y;
}else{
par[y]=x;
if(myrank[x]==myrank[y])myrank[x]++;
}
}
bool same(int x, int y){ //x,y
return find(x)==find(y);
}
bool solve(ll len){
init(n);
REP(i,n)REP(j,n){
if(d[i][j]<=len*len){
unit(i,j);
}
}
return same(0,n-1);
}
int main(){
cin>>n;
REP(i,n)cin>>x[i]>>y[i];
REP(i,n)REP(j,n){
d[i][j]=(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]);
}
ll left=0, right=mod;
while(right-left>1){
ll mid=(left+right)/2;
if(solve(mid)){
right=mid;
}else{
left=mid+1;
}
}
ll ans=left;
REP(i,11){
if(ans%10==0){
if(solve(ans))break;
}
ans++;
}
print(ans);
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0