Submission #1215448

#TimeUsernameProblemLanguageResultExecution timeMemory
1215448Mike_VuRobot (JOI21_ho_t4)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef double dou; #define pii pair<int, int> #define fi first #define se second #define pb push_back #define BITJ(x, j) (((x)>>(j))&1) #define MASK(j) (1LL<<(j)) #define ALL(v) v.begin(), v.end() template<typename T> bool maximize(T &x, const T &y) { if (x < y) {x = y; return 1;} return 0; } template<typename T> bool minimize(T &x, const T &y) { if (x > y) {x = y; return 1;} return 0; } struct edge{ int v, p, c; edge(int _v, int _p, int _c) { v = _v; p = _p; c = _c; } void takeval(int &_v, int &_p, int &_c) { _v = v; _p = p; _c = c; } }; bool cmpedge(const edge &a, const edge &b) { if (a.c != b.c) return a.c < b.c; return a.p < b.p; } const int maxn = 1e5+5; const ll INF = (ll)3e18+7; int n, m; vector<edge> rawadj[maxn]; vector<pair<int, ll>> adj[maxn]; ll dis[maxn]; void fixedge(int u) { sort(ALL(rawadj), cmpedge); ll sumw = 0; for (int i = 0; i < (int)rawadj[i].size(); i++) { int v, p, c; ll w; rawadj[i].takeval(v, p, c); //independent -> 0 //dependent: itself or all others //new if (i == 0 || c != rawadj[i-1].c) { sumw = 0; } //check same if ((i > 0 && c == rawadj[i-1].c) || (i < (int)rawadj[i].size()-1 && c == rawadj[i+1].c)){ w = p; //if largest if (i == (int)rawadj[i].size()-1 || c != rawadj[i+1].c) { minimize(w, sumw); } sumw += p; } else { w = 0; } adj[u].pb({v, w}); } } void dijkstra() { memset(dis, 0x3f, sizeof(dis)); priority_queue<pair<ll, int>> q; q.push({0, 1}); dis[1] = 0; while (!q.empty()) { int u = q.top().se; ll w = -q.top().fi; if (w != dis[u]) continue; for (pii cur : adj[u]) { int v = cur.fi; ll w = cur.se; if (minimize(dis[v], dis[u]+w)) } } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); // #define name "task" // if (fopen(name".inp", "r")) { // freopen(name".inp", "r", stdin); // freopen(name".out", "w", stdout); // } cin >> n >> m; //input 1 bidi -> 2 unidi for (int i = 1; i <= m; i++) { int u, v, p, c; cin >> u >> v >> c >> p; rawadj[u].pb(edge(v, p, c)); rawadj[v].pb(edge(u, p, c)); } //consider each node for (int i = 1; i <= n; i++) { fixedge(i); } //dijkstra in final graph -> ans dijkstra(); cout << (dis[n] > INF ? -1 : dis[n]); }

Compilation message (stderr)

Main.cpp: In function 'void fixedge(int)':
Main.cpp:12:18: error: request for member 'begin' in 'rawadj', which is of non-class type 'std::vector<edge> [100005]'
   12 | #define ALL(v) v.begin(), v.end()
      |                  ^~~~~
Main.cpp:49:10: note: in expansion of macro 'ALL'
   49 |     sort(ALL(rawadj), cmpedge);
      |          ^~~
Main.cpp:12:29: error: request for member 'end' in 'rawadj', which is of non-class type 'std::vector<edge> [100005]'
   12 | #define ALL(v) v.begin(), v.end()
      |                             ^~~
Main.cpp:49:10: note: in expansion of macro 'ALL'
   49 |     sort(ALL(rawadj), cmpedge);
      |          ^~~
Main.cpp:54:19: error: 'class std::vector<edge>' has no member named 'takeval'
   54 |         rawadj[i].takeval(v, p, c);
      |                   ^~~~~~~
Main.cpp:58:40: error: 'class std::vector<edge>' has no member named 'c'
   58 |         if (i == 0 || c != rawadj[i-1].c) {
      |                                        ^
Main.cpp:62:40: error: 'class std::vector<edge>' has no member named 'c'
   62 |         if ((i > 0 && c == rawadj[i-1].c) ||
      |                                        ^
Main.cpp:63:62: error: 'class std::vector<edge>' has no member named 'c'
   63 |             (i < (int)rawadj[i].size()-1 && c == rawadj[i+1].c)){
      |                                                              ^
Main.cpp:66:66: error: 'class std::vector<edge>' has no member named 'c'
   66 |             if (i == (int)rawadj[i].size()-1 || c != rawadj[i+1].c) {
      |                                                                  ^
Main.cpp: In function 'void dijkstra()':
Main.cpp:91:9: error: expected primary-expression before '}' token
   91 |         }
      |         ^