제출 #278540

#제출 시각아이디문제언어결과실행 시간메모리
278540AM1648Olympic Bus (JOI20_ho_t4)C++17
컴파일 에러
0 ms0 KiB
/* be name khoda */ #define long_enable #include <iostream> #include <algorithm> #include <cstring> #include <numeric> #include <vector> #include <fstream> #include <set> #include <map> using namespace std; #ifdef long_enable typedef long long int ll; #else typedef int ll; #endif typedef pair<ll, ll> pii; typedef pair<pii, ll> ppi; typedef pair<ll, pii> pip; typedef vector<ll> vi; typedef vector<pii> vpii; #define forifrom(i, s, n) for (ll i = s; i < n; ++i) #define forirto(i, n, e) for (ll i = (n) - 1; i >= e; --i) #define fori(i, n) forifrom (i, 0, n) #define forir(i, n) forirto (i, n, 0) #define F first #define S second #define pb push_back #define eb emplace_back #define all(x) (x).begin(), (x).end() #define smin(a, b) a = min(a, (b)) #define smax(a, b) a = max(a, (b)) #define debug(x) cout << #x << " -> " << (x) << endl #define debug2(x, y) cout << #x << ' ' << #y << " -> " << (x) << ' ' << (y) << endl #define debug3(x, y, z) cout << #x << ' ' << #y << ' ' << #z << " -> " << (x) << ' ' << (y) << ' ' << (z) << endl #define debug4(x, y, z, t) cout << #x << ' ' << #y << ' ' << #z << ' ' << #t << " -> " << (x) << ' ' << (y) << ' ' << (z) << ' ' << (t) << endl #define debuga(x, n) cout << #x << " -> "; fori (i1_da, n) { cout << (x)[i1_da] << ' '; } cout << endl #define debugaa(x, n, m) cout << #x << " ->\n"; fori (i1_daa, n) { fori (i2_daa, m) { cout << (x)[i1_daa][i2_daa] << ' '; } cout << '\n'; } cout << endl const ll MOD = 1000000007; const ll INF = 2000000000; const long long BIG = 1446803456761533460LL; #define XL (x << 1) #define XR (XL | 1) #define MD ((l + r) >> 1) #define Add(a, b) a = ((a) + (b)) % MOD #define Mul(a, b) a = (1LL * (a) * (b)) % MOD // ----------------------------------------------------------------------- const ll maxn = 210; const ll maxm = 50010; ll n, m, d[6][maxn], par[maxn]; vpii g[maxn]; bool vis[maxn], crit[maxm]; struct Edge { ll a, b, c, d; } es[maxm]; void dij(ll s, ll *dd, bool reverse, bool marktree) { fori (i, m) { if (reverse) g[es[i].b].eb(es[i].a, i); else g[es[i].a].eb(es[i].b, i); } memset(dd, 20, sizeof d[0]); memset(vis, 0, sizeof vis); dd[s] = 0; par[s] = s; fori (i, n) { ll x = -1; fori (j, n) if (!vis[j] && (x == -1 || dd[j] < dd[x])) x = j; if (x != s && marktree) crit[par[x]] = true; vis[x] = true; for (auto [y, e] : g[x]) { if (dd[x] + es[e].c < dd[y]) dd[y] = dd[x] + es[e].c, par[y] = e; } } fori (i, n) g[i].clear(); } int main() { ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0); cin >> n >> m; fori (i, m) { cin >> es[i].a >> es[i].b >> es[i].c >> es[i].d; --es[i].a, --es[i].b; } dij(0, d[0], false, true); dij(0, d[1], true, true); dij(n - 1, d[2], false, true); dij(n - 1, d[3], true, true); ll ans = d[0][n - 1] + d[2][0]; fori (i, m) { if (!crit[i]) { ll a = d[0][es[i].b] + d[3][es[i].a]; ll b = d[2][es[i].b] + d[1][es[i].a]; smin(ans, a + b + es[i].c * 2 + es[i].d); } else { swap(es[i].a, es[i].b); dij(0, d[4], false, false); dij(n - 1, d[5], false, false); swap(es[i].a, es[i].b); smin(ans, d[4][n - 1] + d[5][0] + [i].d); } } if (ans >= BIG) ans = -1; cout << ans << '\n'; }

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

ho_t4.cpp: In lambda function:
ho_t4.cpp:113:50: error: expected '{' before '.' token
  113 |             smin(ans, d[4][n - 1] + d[5][0] + [i].d);
      |                                                  ^
ho_t4.cpp:36:32: note: in definition of macro 'smin'
   36 | #define smin(a, b) a = min(a, (b))
      |                                ^
ho_t4.cpp: In function 'int main()':
ho_t4.cpp:113:51: error: 'struct main()::<lambda()>' has no member named 'd'
  113 |             smin(ans, d[4][n - 1] + d[5][0] + [i].d);
      |                                                   ^
ho_t4.cpp:36:32: note: in definition of macro 'smin'
   36 | #define smin(a, b) a = min(a, (b))
      |                                ^