Submission #1274783

#TimeUsernameProblemLanguageResultExecution timeMemory
1274783MisterReaperRobot (JOI21_ho_t4)C++17
Compilation error
0 ms0 KiB
// File robot.cpp created on 30.09.2025 at 20:29:06 #include <bits/stdc++.h> using i64 = long long; #ifdef DEBUG #include "/home/ahmetalp/Desktop/Workplace/debug.h" #else #define debug(...) void(23) #endif template<typename T> bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; } constexpr i64 inf = i64(1E18); int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int N, M; std::cin >> N >> M; std::vector<std::array<int, 4>> E(M); for (int i = 0; i < M; ++i) { std::cin >> E[i][0] >> E[i][1] >> E[i][2] >> E[i][3]; --E[i][0], --E[i][1]; } std::vector<std::map<int, i64>> sum(N); std::vector<std::map<int, std::vector<int>>> adj(N); for (int i = 0; i < M; ++i) { adj[E[i][0]][E[i][2]].emplace_back(i); adj[E[i][1]][E[i][2]].emplace_back(i); sum[E[i][0]][E[i][2]] += E[i][3]; sum[E[i][1]][E[i][2]] += E[i][3]; } using T = std::tuple<i64, int, int>; std::priority_queue<T, std::vector<T>, std::greater<T>> pq; std::vector<i64> dis1(N, inf); std::vector<std::map<int, i64>> dis2(N); pq.emplace(dis1[0] = 0, -1, 0); while (!pq.empty()) { auto[d, col, v] = pq.top(); pq.pop(); debug(d, col, v); if (col == -1) { if (dis1[v] != d) { continue; } for (auto&[c, vec] : adj[v]) { for (auto i : vec) { int u = E[i][0] ^ E[i][1] ^ v; { i64 cost = std::min<i64>(E[i][3], sum[v][c] - E[i][3]); assert(cost >= 0); if (chmin(dis1[u], d + cost)) { pq.emplace(dis1[u], -1, u); } } { if (adj[u].contains(c)) { if (!dis2[u].contains(c)) { pq.emplace(dis2[u][c] = d, c, u); } else if (chmin(dis2[u][c], d)) { pq.emplace(dis2[u][c], c, u); } } } } } } else { if (dis2[v][col] != d) { continue; } auto& vec = adj[v][col]; for (auto i : vec) { int u = E[i][0] ^ E[i][1] ^ v; i64 cost = sum[v][col] - E[i][3]; assert(cost >= 0); if (chmin(dis1[u], d + cost)) { pq.emplace(dis1[u], -1, u); } } } } i64 ans = dis1[N - 1]; if (ans == inf) { ans = -1; } std::cout << ans << '\n'; return 0; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:71:36: error: '__gnu_cxx::__alloc_traits<std::allocator<std::map<int, std::vector<int> > >, std::map<int, std::vector<int> > >::value_type' {aka 'class std::map<int, std::vector<int> >'} has no member named 'contains'
   71 |                         if (adj[u].contains(c)) {
      |                                    ^~~~~~~~
Main.cpp:72:42: error: '__gnu_cxx::__alloc_traits<std::allocator<std::map<int, long long int> >, std::map<int, long long int> >::value_type' {aka 'class std::map<int, long long int>'} has no member named 'contains'
   72 |                             if (!dis2[u].contains(c)) {
      |                                          ^~~~~~~~