QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#232304#7184. Transport Plusesspetar4WA 0ms3904kbC++143.1kb2023-10-30 09:46:052023-10-30 09:46:05

Judging History

This is the latest submission verdict.

  • [2023-10-30 09:46:05]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 3904kb
  • [2023-10-30 09:46:05]
  • Submitted

answer

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n,t;
    cin>>n>>t;
    int xh, yh;
    cin>>xh>>yh;
    int xe, ye;
    cin>>xe>>ye;
    int x[n+1];
    int y[n+1];
    for (int i=1; i<=n; ++i){cin>>x[i]>>y[i];}

    double mine=sqrt((xe-xh)*(xe-xh)+(ye-yh)*(ye-yh));
    int br=1;
    double pl[400];
    double xx[400];
    double yy[400];
    pl[0]=0;
    xx[0]=xe;
    yy[0]=ye;
    for (int i=1; i<=n; ++i){
        double tr=sqrt((yh-y[i])*(yh-y[i]) + (xh-x[i])*(xh-x[i])) + sqrt((ye-y[i])*(ye-y[i])+(xe-x[i])*(xe-x[i])) + t;
        //cout<<tr<<endl;
        if (tr<mine){
            mine=tr;
            br=3;
            pl[0]=0;
            pl[1]=i;
            pl[2]=0;
            xx[2]=xe;
            yy[2]=ye;
        }
        if (abs(xh-x[i])<abs(yh-y[i]) && abs(xe-x[i])<abs(ye-y[i])){
                xx[0]=x[i];
                yy[0]=yh;
                xx[1]=x[i];
                yy[1]=ye;
        }
        else if (abs(xh-x[i])<abs(yh-y[i]) && abs(xe-x[i])>=abs(ye-y[i])){
                xx[0]=x[i];
                yy[0]=yh;
                xx[1]=xe;
                yy[1]=y[i];
        }
        else if (abs(xh-x[i])>=abs(yh-y[i]) && abs(xe-x[i])<abs(ye-y[i])){
                xx[0]=xh;
                yy[0]=y[i];
                xx[1]=x[i];
                yy[1]=ye;
        }

        else if (abs(xh-x[i])>=abs(yh-y[i]) && abs(xe-x[i])>=abs(ye-y[i])){
                xx[0]=xh;
                yy[0]=y[i];
                xx[1]=xe;
                yy[1]=y[i];
        }
    }

    for (int i=1; i<=n; ++i){
        for (int j=1; j<=n; ++j){
            double tr=min(abs(yh-y[i]), abs(xh-x[i])) + min(abs(ye-y[j]), abs(xe-x[j])) + 2*t;
            //cout<<tr<<endl;
            if (tr<mine){
                mine=tr;
                br=4;
                pl[0]=0;
                pl[1]=i;
                pl[2]=j;
                pl[3]=0;
                xx[3]=xe;
                yy[3]=ye;
                xx[1]=x[i];
                yy[1]=y[j];
                if (abs(xh-x[i])<abs(yh-y[i]) && abs(xe-x[j])<abs(ye-y[j])){
                    xx[0]=x[i];
                    yy[0]=yh;
                    xx[2]=x[j];
                    yy[2]=ye;
                }
                else if (abs(xh-x[i])<abs(yh-y[i]) && abs(xe-x[j])>=abs(ye-y[j])){
                    xx[0]=x[i];
                    yy[0]=yh;
                    xx[2]=xe;
                    yy[2]=y[j];
                }
                else if (abs(xh-x[i])>=abs(yh-y[i]) && abs(xe-x[j])<abs(ye-y[j])){
                    xx[0]=xh;
                    yy[0]=y[i];
                    xx[2]=x[j];
                    yy[2]=ye;
                }
                else if (abs(xh-x[i])>=abs(yh-y[i]) && abs(xe-x[j])>=abs(ye-y[j])){
                    xx[0]=xh;
                    yy[0]=y[i];
                    xx[2]=xe;
                    yy[2]=y[j];
                }
            }
        }
    }

    cout<<mine<<endl;
    cout<<br<<endl;
    for (int i=0; i<br-1; ++i){cout<<pl[i]<<" "<<xx[i]<<" "<<yy[i]<<endl;}
    cout<<0<<" "<<xe<<" "<<ye;
    return 0;
}

详细

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3904kb

input:

1 2
1 1
5 3
6 2

output:

4.47214
1
0 5 3

result:

wrong answer read 4.472136 but expected 4.000000, error = 0.472136