제출 #1305035

#제출 시각아이디문제언어결과실행 시간메모리
1305035fly꿈 (IOI13_dreaming)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #include dreaming.h using namespace std; vector<vector<pair<int, int>>> connections(100000); vector<bool> visited(100000); vector<pair<int, int>> far(100000, {-1, 0}); vector<pair<int, int>> sfar(100000, {-1, 0}); int treeans; vector<int> answers; void fdfs(int cur, int par) { visited[cur] = true; for (pair<int, int> next: connections[cur]) { if (next.first == par) continue; fdfs(next.first, cur); int d = far[next.first].second + next.second; if (d > far[cur].second) { sfar[cur] = far[cur]; far[cur].first = next.first; far[cur].second = d; } else if (d > sfar[cur].second) { sfar[cur].first = next.first; sfar[cur].second = d; } } } void sdfs(int cur, int par) { for (pair<int, int> next: connections[cur]) { if (next.first == par) continue; if (far[cur].first != next.first) { if (far[cur].second + next.second > far[next.first].second) { sfar[next.first] = far[next.first]; far[next.first] = {cur, far[cur].second + next.second}; } else if (far[cur].second + next.second > sfar[next.first].second) { sfar[next.first] = {cur, far[cur].second + next.second}; } } else { if (sfar[cur].second + next.second > far[next.first].second) { sfar[next.first] = far[next.first]; far[next.first] = {cur, sfar[cur].second + next.second}; } else if (far[cur].second + next.second > sfar[next.first].second) { sfar[next.first] = {cur, sfar[cur].second + next.second}; } } sdfs(next.first, cur); } treeans = min(treeans, far[cur].second); } int main() { freopen("dreaming.in", "r", stdin); freopen("dreaming.out", "w", stdout); int n, m, l; cin >> n >> m >> l; int a,b,t; for (int i = 0; i < m; ++i) { cin >> a >> b >> t; connections[a].push_back({b, t}); connections[b].push_back({a, t}); } for (int i = 0; i < n; ++i) { if (!visited[i]) { fdfs(i, -1); treeans = INT_MAX; sdfs(i, -1); answers.push_back(treeans); } } sort(answers.begin(), answers.end(), greater<int>()); if (answers.size() > 1) { cout << answers[0] + answers[1] + l; } else { cout << answers[0]; } }

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

dreaming.cpp:2:10: error: #include expects "FILENAME" or <FILENAME>
    2 | #include dreaming.h
      |          ^~~~~~~~
dreaming.cpp: In function 'int main()':
dreaming.cpp:49:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   49 |     freopen("dreaming.in", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
dreaming.cpp:50:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   50 |     freopen("dreaming.out", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~