Submission #645831

#TimeUsernameProblemLanguageResultExecution timeMemory
645831MadokaMagicaFanSpeedrun (RMI21_speedrun)C++14
Compilation error
0 ms0 KiB
#include "bits/stdc++.h" using namespace std; using ll = long long; using vi = vector<int>; using pi = pair<int, int>; #define forn(i,n) for(int i = 0; i < n; ++i) #define forb(i,b,n) for(int i = b; i < n; ++i) #define pb push_back #define sz(v) ((int)((v).size())) #define ONPC void setHintLen(int l); void setHint(int i, int j, bool b); int getLength(); bool getHint(int j); bool goTo(int x); void assignHints(int s, int n, vi a, vi b) { if (s == 1) { setHintLen(n); forb(i,1,n) { setHint(a[i], b[i], 1); setHint(b[i], a[i], 1); } } } vi p; void dfs1(int x, int n) { forb(i,1,n+1) { if (x == i) continue; if (i == p[x]) continue; if (getHint(i)) { p[i] = x; goTo(i); dfs1(i,n); goTo(x); } } } void speedrun(int s, int n, int x) { if (s == 1) { p.assign(n+1, -1); dfs1(x,n); } } #ifdef ONPC int lg; int cur; vector<bool> vis; int cnt = 0; int mist = 0;; vector<vector<bool>> h; vi a, b; void setHintLen(int l){ lg = l; forn(i, sz(h)) h[i].assign(l,0); } void setHint(int i, int j, bool b) { --i, --j; assert(i < sz(h)); assert(j < lg); h[i][j] = b; } int getLength() { return lg; } bool getHint(int j) { j--; assert(j < lg); return h[cur][j]; } bool goTo(int x) { for(int i = 1; i < sz(a); ++i) { if (a[i] == cur+1 && b[i] == x || b[i] == cur+1 && a[i] == x ) { cur = x - 1; if (vis[cur] == 0) { vis[cur] = 1; ++cnt; } return 1; } } ++mist; return 0; } int32_t main(int argc, char *argv[]) { if (argc > 1) freopen(argv[1], "r", stdin); ios_base::sync_with_stdio(0); cin.tie(0); int sub, n, st; cin >> sub >> n >> st; h.assign(n,{}); a.assign(n, 0); b.assign(n, 0); vis.assign(n,0); vis[st-1] = 1; cnt = 1; for (int i = 1; i < n; ++i) { cin >> a[i] >> b[i]; } assignHints(sub, n, a, b); speedrun(sub, n, st); cout << cnt << ' ' << mist; } #endif

Compilation message (stderr)

speedrun.cpp: In function 'bool goTo(int)':
speedrun.cpp:93:27: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   93 |         if (a[i] == cur+1 && b[i] == x
speedrun.cpp: In function 'int32_t main(int, char**)':
speedrun.cpp:113:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  113 |         freopen(argv[1], "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/ccY5cJCD.o: in function `setHintLen(int)':
stub.cpp:(.text+0xc0): multiple definition of `setHintLen(int)'; /tmp/ccZ5iUVD.o:speedrun.cpp:(.text+0x3b0): first defined here
/usr/bin/ld: /tmp/ccY5cJCD.o: in function `setHint(int, int, bool)':
stub.cpp:(.text+0x150): multiple definition of `setHint(int, int, bool)'; /tmp/ccZ5iUVD.o:speedrun.cpp:(.text+0xa0): first defined here
/usr/bin/ld: /tmp/ccY5cJCD.o: in function `getLength()':
stub.cpp:(.text+0x200): multiple definition of `getLength()'; /tmp/ccZ5iUVD.o:speedrun.cpp:(.text+0x150): first defined here
/usr/bin/ld: /tmp/ccY5cJCD.o: in function `getHint(int)':
stub.cpp:(.text+0x210): multiple definition of `getHint(int)'; /tmp/ccZ5iUVD.o:speedrun.cpp:(.text+0x160): first defined here
/usr/bin/ld: /tmp/ccY5cJCD.o: in function `goTo(int)':
stub.cpp:(.text+0x420): multiple definition of `goTo(int)'; /tmp/ccZ5iUVD.o:speedrun.cpp:(.text+0x1c0): first defined here
/usr/bin/ld: /tmp/ccY5cJCD.o: in function `main':
stub.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccZ5iUVD.o:speedrun.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccY5cJCD.o: in function `main':
stub.cpp:(.text.startup+0x1d1): undefined reference to `assignHints(int, int, int*, int*)'
collect2: error: ld returned 1 exit status