Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- vector<pair<int,int>> yoyo;
- int x=1;
- bool f[205]={0};
- int a;
- int dis(int i,int j){
- int dx = yoyo[i].first-yoyo[j].first;
- int dy = yoyo[i].second-yoyo[j].second;
- return dx*dx + dy*dy;
- }
- void run(int c,int b){
- if(f[c]==1)return;
- else{
- f[c]=1;
- for(int i=0;i<a;i++){
- if(i!=c&&dis(c,i)<=b){
- run(i,b);
- }
- }
- }
- }
- bool solve(int b){
- fill(f,f+a,0);
- run(0,b);
- if(f[a-1])return true;
- else return false;
- }
- int main(){
- while(cin>>a){
- if(a!=0){
- yoyo.clear();
- for(int i=0;i<a;i++){
- int b;
- int c;
- cin>>b>>c;
- yoyo.push_back({b,c});
- }
- int maxs=0;
- for(int i=0;i<a;i++){
- for(int j=0;j<a;j++){
- if(dis(i,j)>maxs){
- maxs=dis(i,j);
- }
- }
- }
- int l=-1;
- int h=maxs;
- while(l!=h-1){
- bool k=solve((h+l)/2);
- if(k)h=(h+l)/2;
- else l=(h+l)/2;
- cout<<l<<" "<<h<<endl;
- }
- double ans=sqrt(h);
- cout<<"Scenario #"<<x<<endl;
- cout<<"Frog Distance = ";
- printf("%.3f\n\n",ans);
- x++;
- }
- else break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement