제출 #1056404

#제출 시각아이디문제언어결과실행 시간메모리
1056404IgnutLongest Trip (IOI23_longesttrip)C++17
40 / 100
751 ms1560 KiB
/* Ignut started: 13.08.2024 now: 13.08.2024 ████████████████████████████████████████████████████████████████████ ████████████████████████████████ ████████████████████████████████ ██████████████████████████████ ██████████████████████████████ ██████ ██████████████████ ██████████████████ ██████ ██████ ██████████████ ██████████████ ██████ ██████ ██ ████████████ ████████████ ██ ██████ ██████ ████ ██████████ ██████████ ████ ██████ ██████ ████ ██████████ ██████████ ████ ██████ ██████ ████ ██████████ ██████████ ██████ ██████ ██████ ██████ ██████████ ██████████ ██████ ██████ ██████ ██████ ████████ ████████ ██████ ██████ ██████ ██████ ██████ ██████ ██████ ██████ ██████ ████ ████ ████ ████ ██████ ██████ ██████████ ████ ██████████ ██████ ██████ ██ ██████ ████████ ██████ ██ ██████ ██████ ██████ ████████ ██████ ██████ ██████ ██ ██ ██████ ██████████████████████ ████ ████ ██████████████████████ ████████████████████████ ██ ██ ████████████████████████ ██████████████████████████ ██████████████████████████ ██████████████████████████████ ██████████████████████████████ ████████████████████████████████████████████████████████████████████ */ #include <bits/stdc++.h> using namespace std; using ll = long long; bool are_connected(vector<int> A, vector<int> B); const int MAXN = 333; vector<int> g[MAXN]; bool used[MAXN]; vector<int> order; void dfs(int v) { order.push_back(v); used[v] = true; for (int to : g[v]) { if (used[to]) continue; dfs(to); return; } } vector<int> longest_trip(int N, int D) { if (D == 3) { vector<int> vec; for (int i = 0; i < N; i ++) vec.push_back(i); return vec; } if (D == 2) { vector<pair<int, int>> lst; int cnt[N] = {}; for (int i = 0; i < N; i ++) { for (int j = i + 1; j < N; j ++) { if (!are_connected({i}, {j})) { lst.push_back({i, j}); cnt[i] ++, cnt[j] ++; } } } vector<int> free; for (int i = 0; i < N; i ++) if (cnt[i] == 0) free.push_back(i); vector<int> res; for (int i = 0; i < lst.size(); i ++) res.push_back(lst[i].first); for (int val : free) res.push_back(val); for (int i = 0; i < lst.size(); i ++) res.push_back(lst[i].second); return res; } order.clear(); for (int i = 0; i < N; i ++) { g[i].clear(); used[i] = false; } for (int i = 0; i < N; i ++) { for (int j = i + 1; j < N; j ++) { if (are_connected({i}, {j})) { g[i].push_back(j); g[j].push_back(i); } } } vector<int> res; for (int start = 0; start < N; start ++) { for (int i= 0; i < N; i ++) used[i] = false; order.clear(); dfs(start); if (order.size() > res.size()) res = order; } return res; }

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

longesttrip.cpp: In function 'std::vector<int> longest_trip(int, int)':
longesttrip.cpp:72:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   72 |         for (int i = 0; i < lst.size(); i ++) res.push_back(lst[i].first);
      |                         ~~^~~~~~~~~~~~
longesttrip.cpp:74:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   74 |         for (int i = 0; i < lst.size(); i ++) res.push_back(lst[i].second);
      |                         ~~^~~~~~~~~~~~
#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...