Submission #1020764

#TimeUsernameProblemLanguageResultExecution timeMemory
1020764mansurRoller Coaster Railroad (IOI16_railroad)C++17
Compilation error
0 ms0 KiB
#include "railroad.h" #include <bits/stdc++.h> using namespace std; #define rall(s) s.rbegin(), s.rend() #define all(s) s.begin(), s.end() #define sz(s) (int)s.size() #define s second #define f first using ll = long long; using pii = pair<int, int>; using pll = pair<ll, ll>; const ll inf = 1e18, N = 1e6; vector<int> ord, was(N), g[N]; void dfs(int u) { was[u] = 1; for (int to: g[u]) { if (!was[to]) dfs(to); } ord.push_back(u); } long long plan_roller_coaster(std::vector<int> s, std::vector<int> t) { int n = sz(s); if (n <= 16) { ll dp[1 << n][n]; for (int msk = 0; msk < (1 << n); msk++) { for (int i = 0; i < n; i++) { dp[msk][i] = inf; } } for (int i = 0; i < n; i++) dp[1 << i][i] = 0; for (int msk = 1; msk < (1 << n); msk++) { for (int i = 0; i < n; i++) { if (msk >> i & 1) { for (int j = 0; j < n; j++) { if (msk >> j & 1) continue; int msk1 = msk + (1 << j); dp[msk1][j] = min(dp[msk1][j], dp[msk][i] + max(0, t[i] - s[j])); } } } } ll ans = inf; for (int i = 0; i < n; i++) ans = min(ans, dp[(1 << n) - 1][i]); return ans; } vector<pii> a; for (int i = 0; i < n; i++) a.push_back({t[i], s[i]}); sort(all(s)); for (int i = 0; i < n; i++) { g[i + n].push_back(i); if (i) g[i + n].push_back(i + n - 1); int p = upper_bound(all(a), (pair){s[i], 0}) - a.begin() - 1; if (p >= 0) g[p + n - 1].push_back(i); } for (int i = 0; i < n; i++) { if (!was[i]) dfs(i); } reverse(all(ord)); int lst = ord[0]; for (int i = 1; i < sz(ord); i++) { if (ord[i] >= n) continue; if (a[ord[i]].s < a[lst].f) return 1; lst = ord[i]; } return 0; }

Compilation message (stderr)

railroad.cpp: In function 'long long int plan_roller_coaster(std::vector<int>, std::vector<int>)':
railroad.cpp:59:38: error: missing template arguments after 'pair<...auto...>'
   59 |         int p = upper_bound(all(a), (pair){s[i], 0}) - a.begin() - 1;
      |                                      ^~~~
In file included from /usr/include/c++/10/bits/stl_algobase.h:64,
                 from /usr/include/c++/10/vector:60,
                 from railroad.h:3,
                 from railroad.cpp:1:
/usr/include/c++/10/bits/stl_pair.h:211:12: note: 'template<class _T1, class _T2> struct std::pair' declared here
  211 |     struct pair
      |            ^~~~