제출 #990671

#제출 시각아이디문제언어결과실행 시간메모리
990671Ibrohim0704사이버랜드 (APIO23_cyberland)C++17
컴파일 에러
0 ms0 KiB
#include <vector> #include <queue> #include <algorithm> using namespace std; double solve(int N, int M, int K, int H, vector<int> x, vector<int> y, vector<int> c, vector<int> arr) { vector<double> min_time(N, numeric_limits<double>::infinity()); min_time[0] = 0; auto cmp = [](const pair<double, int>& a, const pair<double, int>& b) { return a.first > b.first; }; priority_queue<pair<double, int>, vector<pair<double, int>>, decltype(cmp)> pq(cmp); pq.push({0, 0}); while (!pq.empty()) { double time = pq.top().first; long long int country = pq.top().second; pq.pop(); if (country == H) { return time; } for (long long int i = 0; i < M; ++i) { long long int neighbor; if (x[i] == country) { neighbor = y[i]; } else if (y[i] == country) { neighbor = x[i]; } else { continue; } long long double neighbor_time = time + c[i]; if (arr[neighbor] == 2 && K > 0) { neighbor_time /= 2; --K; } if (neighbor_time < min_time[neighbor]) { min_time[neighbor] = neighbor_time; pq.push({neighbor_time, neighbor}); } } } return -1; }

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

cyberland.cpp: In function 'double solve(int, int, int, int, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
cyberland.cpp:36:18: error: 'long long' specified with 'double'
   36 |             long long double neighbor_time = time + c[i];
      |                  ^~~~