제출 #482409

#제출 시각아이디문제언어결과실행 시간메모리
482409Spade1꿈 (IOI13_dreaming)C++17
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #define ll long long #define pii pair<int, int> #define st first #define nd second using namespace std; vector<pii> adj[100010]; vector<pii> connect; bool visited[100010]; int max_dis, min_dis; int u, v, node; void dfs(int i, int prt, int dis) { visited[i] = 1; if (dis > max_dis) { u = i; max_dis = dis; } for (auto j : adj[i]) { if (j.st == prt) continue; dfs(j.st, i, dis + j.nd); } } int dfs2(int i, int prt, int dis) { if (i == v) { min_dis = dis; return 0; } for (auto j : adj[i]) { if (j.st == prt) continue; int k = dfs2(j.st, i, dis + j.nd); if (k == -1) continue; k += j.nd; if (max(dis, k) < min_dis) { node = i; min_dis = max(dis, k); } return k; } return -1; } int travelTime(int N, int M, int L, int A[], int B[], int T[]) { for (int i = 0; i < M; ++i) { adj[A[i]].push_back({B[i], T[i]}); adj[B[i]].push_back({A[i], T[i]}); } int mx1 = INT_MIN, mx2 = INT_MIN; for (int i = 0; i < N; ++i) { if (visited[i]) continue; max_dis = 0, u = i; dfs(i, -1, 0); max_dis = 0, v = u; dfs(v, -1, 0); min_dis = INT_MAX, node = u; dfs2(u, -1, 0); connect.push_back({min_dis, node}); } sort(connect.begin(), connect.end()); for (int i = 1; i < connect.size(); ++i) { adj[connect[i].nd].push_back({connect[i - 1].nd, L}); adj[connect[i - 1].nd].push_back({connect[i].nd, L}); } max_dis = 0, u = 0; dfs(0, -1, 0); max_dis = 0; dfs(u, -1, 0); return max_dis; } int main() { int n, m, l; cin >> n >> m >> l; int a[m], b[m], t[m]; for (int i = 0; i < m; ++i) { cin >> a[i] >> b[i] >> t[i]; } cout << travelTime(n, m, l, a, b, t); return 0; } /* 12 8 2 0 8 4 8 2 2 2 7 4 5 11 3 5 1 7 1 3 1 1 9 5 10 6 3 15 10 5 0 1 1 1 11 2 1 2 4 2 4 6 9 10 5 10 12 10 3 7 6 6 7 6 7 8 9 8 13 8 */

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

dreaming.cpp: In function 'int travelTime(int, int, int, int*, int*, int*)':
dreaming.cpp:68:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   68 |     for (int i = 1; i < connect.size(); ++i) {
      |                     ~~^~~~~~~~~~~~~~~~
dreaming.cpp:53:9: warning: unused variable 'mx1' [-Wunused-variable]
   53 |     int mx1 = INT_MIN, mx2 = INT_MIN;
      |         ^~~
dreaming.cpp:53:24: warning: unused variable 'mx2' [-Wunused-variable]
   53 |     int mx1 = INT_MIN, mx2 = INT_MIN;
      |                        ^~~
/usr/bin/ld: /tmp/ccXuFLFf.o: in function `main':
dreaming.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cc0192Ae.o:grader.c:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/cc0192Ae.o: in function `main':
grader.c:(.text.startup+0xd1): undefined reference to `travelTime'
collect2: error: ld returned 1 exit status