제출 #806650

#제출 시각아이디문제언어결과실행 시간메모리
806650vjudge1Robot (JOI21_ho_t4)C++17
0 / 100
84 ms9956 KiB
#ifdef Home #define _GLIBCXX_DEBUG #endif // Home #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; const int N = 100100; struct edge{ int b, c, p; }; vector < edge > adj[N]; main() { #ifdef Home freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif // Home ios_base::sync_with_stdio(0); cin.tie(0); int n, m; cin >> n >> m; for(int a, b, c, p; m --> 0;) { cin >> a >> b >> c >> p; adj[a].push_back({b, c, p}); adj[b].push_back({a, c, p}); } for(int i = 1; i <= n; ++i) { sort(adj[i].begin(), adj[i].end(), [&](edge a, edge b) { return a.c < b.c; }); } priority_queue < pair < int, int > > pq; vector < ll > dist(n + 1, 1e18); dist[1] = 0; pq.push({0, 1}); for(; !pq.empty();) { auto [dst, v] = pq.top(); pq.pop(); if(-dst > dist[v]) { continue; } for(int i = 0; i < adj[v].size(); ++ i) { int tmp = ((i && adj[v][i - 1].c == adj[v][i].c)|| (i + 1 < adj[v].size() && adj[v][i].c == adj[v][i + 1].c) ? adj[v][i].p : 0); int u = adj[v][i].b; if(dist[v] + tmp < dist[u]) { dist[u] = dist[v] + tmp; pq.push({-dist[u], u}); } } } cout << (dist[n] == 1e18 ? -1 : dist[n]); }

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

Main.cpp:20:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   20 | main() {
      | ^~~~
Main.cpp: In function 'int main()':
Main.cpp:50:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<edge>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |         for(int i = 0; i < adj[v].size(); ++ i) {
      |                        ~~^~~~~~~~~~~~~~~
Main.cpp:52:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<edge>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |                        (i + 1 < adj[v].size() && adj[v][i].c == adj[v][i + 1].c) ? adj[v][i].p : 0);
      |                         ~~~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...