Submission #1795943


Source Code Expand

#include<iostream>
#include<iomanip>
#include<cmath>

int n;
int sx;
int sy;
int gx;
int gy;

int ff[200000];

int fff[200000];

const double cir=3.14159265358979*5;

//direc 1右 2左 4上 5下 から 差が1なら半周 それ以外なら4分の1周

bool judge(int xx,int yy){
    
    for(int i=0;i<n;i++){
        if(ff[i]==xx&&fff[i]==yy)
            return true;
    }
    
    return false;
}

double rec(int direc,int nx,int ny,double len){
    
    double res=300000000;
    
    if(len<abs(gx-sy)*100+abs(gy-sy)*100+200){
        
        if(nx==gx&&ny==gy)
            res=len;
        
        else{
            if(judge(nx,ny)){
                if(direc!=1)
                    if(nx<gx+1){
                        if(abs(direc-2)==1)
                            res=rec(2,nx+1,ny,len+90+cir*2)<res?rec(2,nx+1,ny,len+90+cir*2):res;
                        else
                            res=rec(2,nx+1,ny,len+90+cir)<res?rec(2,nx+1,ny,len+90+cir):res;
                    }
                if(direc!=2)
                    if(0<nx){
                        if(abs(direc-1)==1)
                            res=rec(1,nx-1,ny,len+90+cir*2)<res?rec(1,nx-1,ny,len+90+cir*2):res;
                        else
                            res=rec(1,nx-1,ny,len+90+cir)<res?rec(1,nx-1,ny,len+90+cir):res;
                    }
                if(direc!=4)
                    if(ny<gy+1){
                        if(abs(direc-5)==1)
                            res=rec(5,nx,ny+1,len+90+cir*2)<res?rec(5,nx,ny+1,len+90+cir*2):res;
                        else
                            res=rec(5,nx,ny+1,len+90+cir)<res?rec(5,nx,ny+1,len+90+cir):res;
                    }
                if(direc!=5)
                    if(0<ny){
                        if(abs(direc-4)==1)
                            res=rec(4,nx,ny-1,len+90+cir*2)<res?rec(4,nx,ny-1,len+90+cir*2):res;
                        else
                            res=rec(4,nx,ny-1,len+90+cir)<res?rec(4,nx,ny-1,len+90+cir):res;
                    }
            }
            else{
                if(direc!=1)
                    if(nx<gx+1){
                        if(!judge(nx+1,ny))
                            res=rec(2,nx+1,ny,len+100)<res?rec(2,nx+1,ny,len+100):res;
                        else
                            res=rec(2,nx+1,ny,len+90)<res?rec(2,nx+1,ny,len+90):res;
                    }
                if(direc!=2)
                    if(0<nx){
                        if(!judge(nx-1,ny))
                            res=rec(1,nx-1,ny,len+100)<res?rec(1,nx-1,ny,len+100):res;
                        else
                            res=rec(1,nx-1,ny,len+90)<res?rec(1,nx-1,ny,len+90):res;
                    }
                if(direc!=4)
                    if(ny<gy+1){
                        if(!judge(nx,ny+1))
                            res=rec(5,nx,ny+1,len+100)<res?rec(5,nx,ny+1,len+100):res;
                        else
                            res=rec(5,nx,ny+1,len+90)<res?rec(5,nx,ny+1,len+90):res;
                    }
                if(direc!=5)
                    if(0<ny){
                        if(!judge(nx,ny-1))
                            res=rec(4,nx,ny-1,len+100)<res?rec(4,nx,ny-1,len+100):res;
                        else
                            res=rec(4,nx,ny-1,len+90)<res?rec(4,nx,ny-1,len+90):res;
                    }
            }
        }
    }
    
    return res;
}

int main(){
    
    std::cin>>sx>>sy>>gx>>gy;
    
    std::cin>>n;
    
    for(int i=0;i<n;i++){
        std::cin>>ff[i]>>fff[i];
    }
    
    std::cout<<std::setprecision(18)<<rec(-1,sx,sy,0)<<std::endl;
    
    return 0;
}

Submission Info

Submission Time
Task C - Fountain Walk
User HPaddy
Language C++14 (GCC 5.4.1)
Score 0
Code Size 3770 Byte
Status WA
Exec Time 2107 ms
Memory 4864 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 900
Status
AC × 1
WA × 2
AC × 10
WA × 16
TLE × 21
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt, subtask_1_41.txt
Case Name Status Exec Time Memory
sample_01.txt AC 4 ms 256 KB
sample_02.txt WA 1 ms 256 KB
sample_03.txt WA 1 ms 256 KB
subtask_1_01.txt AC 1 ms 256 KB
subtask_1_02.txt AC 1 ms 256 KB
subtask_1_03.txt AC 1 ms 256 KB
subtask_1_04.txt AC 1 ms 256 KB
subtask_1_05.txt AC 1 ms 256 KB
subtask_1_06.txt AC 1 ms 256 KB
subtask_1_07.txt AC 1 ms 256 KB
subtask_1_08.txt AC 1 ms 256 KB
subtask_1_09.txt TLE 2103 ms 2944 KB
subtask_1_10.txt TLE 2103 ms 2304 KB
subtask_1_11.txt WA 37 ms 512 KB
subtask_1_12.txt TLE 2103 ms 2432 KB
subtask_1_13.txt WA 148 ms 1408 KB
subtask_1_14.txt TLE 2103 ms 2816 KB
subtask_1_15.txt TLE 2104 ms 4864 KB
subtask_1_16.txt TLE 2103 ms 2432 KB
subtask_1_17.txt TLE 2103 ms 2304 KB
subtask_1_18.txt TLE 2103 ms 2432 KB
subtask_1_19.txt TLE 2103 ms 2432 KB
subtask_1_20.txt TLE 2103 ms 2432 KB
subtask_1_21.txt WA 195 ms 1792 KB
subtask_1_22.txt TLE 2103 ms 2432 KB
subtask_1_23.txt WA 191 ms 1792 KB
subtask_1_24.txt TLE 2103 ms 256 KB
subtask_1_25.txt TLE 2103 ms 256 KB
subtask_1_26.txt TLE 2107 ms 256 KB
subtask_1_27.txt TLE 2103 ms 256 KB
subtask_1_28.txt TLE 2103 ms 2560 KB
subtask_1_29.txt TLE 2103 ms 2432 KB
subtask_1_30.txt WA 190 ms 1792 KB
subtask_1_31.txt TLE 2103 ms 2560 KB
subtask_1_32.txt TLE 2103 ms 2560 KB
subtask_1_33.txt TLE 2103 ms 2560 KB
subtask_1_34.txt TLE 2107 ms 2560 KB
subtask_1_35.txt WA 191 ms 1792 KB
subtask_1_36.txt WA 191 ms 1792 KB
subtask_1_37.txt WA 191 ms 1792 KB
subtask_1_38.txt WA 194 ms 1792 KB
subtask_1_39.txt WA 194 ms 1792 KB
subtask_1_40.txt WA 191 ms 1792 KB
subtask_1_41.txt WA 192 ms 1792 KB