QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#206161 | #7184. Transport Pluses | pengpeng_fudan# | WA | 0ms | 3964kb | C++14 | 1.9kb | 2023-10-07 19:11:19 | 2023-10-07 19:11:19 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using ull=unsigned long long;
using ll=long long;
int n,t;
struct node{
int x,y;
};
node st,ed;
node ct[110];
void solve() {
int a=0,b=0;
cin>>n>>t;
cin>>st.x>>st.y>>ed.x>>ed.y;
for(int i=1;i<=n;i++) cin>>ct[i].x>>ct[i].y;
double ans=sqrt((st.x-ed.x)*(st.x-ed.x)+(st.y-ed.y)*(st.y-ed.y));
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
double len;
if(i==j){
len=min(abs(st.x-ct[i].x),abs(st.y-ct[i].y))+min(abs(ed.x-ct[i].x),abs(ed.y-ct[i].y))+t;
if(len<ans){ans=len,a=i,b=i;}
}
else{
len=min(abs(st.x-ct[i].x),abs(st.y-ct[i].y))+2*t+min(abs(ed.x-ct[j].x),abs(ed.y-ct[j].y));
if(len<ans){ans=len,a=i,b=j;}
}
}
}
printf("%.6f\n",ans);
if(a==0&&b==0){
cout<<1<<'\n';
cout<<0<<' '<<ed.x<<' '<<ed.y<<'\n';
return ;
}
else if(a==b){
cout<<3<<'\n';
if(abs(st.x-ct[a].x)<abs(st.y-ct[a].y)) cout<<0<<' '<<ct[a].x<<' '<<st.y<<'\n';
else cout<<0<<' '<<st.x<<' '<<ct[a].y<<'\n';
if(abs(ed.x-ct[a].x)<abs(ed.y-ct[a].y)) cout<<1<<' '<<ct[a].x<<' '<<ed.y<<'\n';
else cout<<1<<' '<<ed.x<<' '<<ct[a].y<<'\n';
cout<<0<<' '<<ed.x<<' '<<ed.y<<'\n';
return ;
}
else{
cout<<4<<'\n';
if(abs(st.x-ct[a].x)<abs(st.y-ct[a].y)) cout<<0<<' '<<ct[a].x<<' '<<st.y<<'\n';
else cout<<0<<' '<<st.x<<' '<<ct[a].y<<'\n';
cout<<1<<' '<<ct[a].x<<' '<<ct[b].y<<'\n';
if(abs(ed.x-ct[b].x)<abs(ed.y-ct[b].y)) cout<<1<<' '<<ct[b].x<<' '<<ed.y<<'\n';
else cout<<1<<' '<<ed.x<<' '<<ct[b].y<<'\n';
cout<<0<<' '<<ed.x<<' '<<ed.y<<'\n';
}
}
int main() {
//ios::sync_with_stdio(0),cin.tie(0);
int _ = 1;
//cin >> _;
while(_--) solve();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3912kb
input:
1 2 1 1 5 3 6 2
output:
4.000000 3 0 1 2 1 5 2 0 5 3
result:
ok correct
Test #2:
score: -100
Wrong Answer
time: 0ms
memory: 3964kb
input:
2 1 1 1 6 1 1 3 6 3
output:
2.000000 4 0 1 1 1 1 3 1 6 1 0 6 1
result:
wrong answer step 3: target (6.000000, 1.000000) not on plus (1.000000, 3.000000)