제출 #962591

#제출 시각아이디문제언어결과실행 시간메모리
962591ASGA_RedSeaCyberland (APIO23_cyberland)C++17
0 / 100
3143 ms2097152 KiB
/**
 
                                    * بسم الله الرحمن الرحيم *
 
                ﴾ رَبِّ اشْرَحْ لِي صَدْرِي * وَيَسِّرْ لِي أَمْرِي * وَاحْلُلْ عُقْدَةً مِّن لِّسَانِي * يَفْقَهُوا قَوْلِي ﴿
 
*/
 
/// author : "ASGA_RedSea"
 
 
#include <bits/stdc++.h>
 
using namespace std;
using ll = long long;
using ld = long double;

#define LLONG_MAX 1e18
 
double solve(int n,int m,int k,int H,vector <int> x,vector <int> y,vector <int> t,vector <int> aa);
 
vector <vector <pair <int,int>>> a;
vector <double> v;
vector <int> s;
 
int h;
 
double calc(int i,double time,int k,int last){
    if(i == h)return time;
 
    double ret = LLONG_MAX;
 
    for(const auto& [j,t] : a[i]){
        if(j == last)continue;
        if(s[j] == 0){
            if(v[j] - 0.000000000000 <= 1e-7)continue;
            v[j] = 0.000000000000;
            ret = min(ret,calc(j,0.000000000000,k,i));
        }
        else if(s[j] == 1){
            if(v[j] - (time + t) <= 1e-7)continue;
            v[j] = time + t;
            ret = min(ret,calc(j,time + t,k,i));
        }
        else{
            if(v[j] - (time + t) <= 1e-7)continue;
            if(k > 0)ret = min(ret,calc(j,(time + t) / 2.0,k - 1,i));
            ret = min(ret,calc(j,time,k,i));
        }
    }
 
    return (ret == LLONG_MAX ? -1 : ret);
}
 
double solve(int n,int m,int k,int H,vector <int> x,vector <int> y,vector <int> t,vector <int> aa){
    a.resize(n + 5);h = H;s = aa;
    for(int i = 0;i < m;i++){
        a[x[i]].push_back({y[i],t[i]});
        a[y[i]].push_back({x[i],t[i]});
    }
 
    v = vector <double> (n + 5,LLONG_MAX);
    double ans = calc(0,0.000000000000,k,-1);
 
    return ans;
}

컴파일 시 표준 에러 (stderr) 메시지

cyberland.cpp:18: warning: "LLONG_MAX" redefined
   18 | #define LLONG_MAX 1e18
      | 
In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/limits.h:195,
                 from /usr/lib/gcc/x86_64-linux-gnu/10/include/syslimits.h:7,
                 from /usr/lib/gcc/x86_64-linux-gnu/10/include/limits.h:34,
                 from /usr/include/c++/10/climits:42,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:39,
                 from cyberland.cpp:12:
/usr/include/limits.h:135: note: this is the location of the previous definition
  135 | #  define LLONG_MAX __LONG_LONG_MAX__
      |
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...