/// In The Name Of God
#include <bits/stdc++.h>
#include "Joi.h"
#define ioi exit(0);
using namespace std;
class Solve1 {
static const int N = 2e5 + 7;
int n, m, T;
long long x;
int *a, *b;
int cnt;
vector <int> g[N];
bool was[N];
public:
Solve1() {}
Solve1(int n, int m, int a[], int b[], long long x, int T) :
n(n), m(m), a(a), b(b), x(x), T(T) {}
void dfs(int v = 0) {
was[v] = 1;
if (cnt <= 59) {
int type = (x & (1LL << cnt)) > 0;
MessageBoard(v, type);
}
else {
MessageBoard(v, 0);
}
++cnt;
for (auto to : g[v]) {
if (!was[to]) {
dfs(to);
}
}
}
void solve() {
for (int i = 0; i < m; i++) {
g[a[i]].push_back(b[i]);
g[b[i]].push_back(a[i]);
}
dfs();
}
} S1;
void Joi(int n, int m, int a[], int b[], long long x, int T) {
S1 = Solve1(n, m, a, b, x, T);
S1.solve();
}
/*int32_t main() {
}
*/
/*int32_t main() {
S1.solve();
ioi
}*/
/*int32_t main() {
return 0;
}*/
/*#ifdef IOI2018
int main() {
freopen ("in.txt", "r", stdin);
ioi
}
#endif
*/
/// In The Name Of God
#include <bits/stdc++.h>
#include "Ioi.h"
#define ioi exit(0);
using namespace std;
class Solve2 {
static const int N = 2e5 + 7;
int n, m, p, v, T;
int *a, *b;
vector <int> g[N];
bool was[N];
long long res;
public:
Solve2() {}
Solve2(int n, int m, int a[], int b[], int p, int v, int T) :
n(n), m(m), a(a), b(b), p(p), v(v), T(T) {}
map <int, int> dp;
int ask(int p) {
if (dp.count(p)) return dp[p];
assert(0);
return dp[p] = Move(p);
}
void dfs(int v) {
was[v] = 1;
if (was[0]) return;
for (auto to : g[v]) {
if (!was[to] && !was[0]) {
dp[to] = Move(to);
dfs(to);
if (!was[0]) {
dp[v] = Move(v);
}
}
}
}
int cnt;
void dfs1(int v = 0) {
was[v] = 1;
if (cnt <= 59) {
res += (1LL << cnt) * ask(v);
}
cnt++;
if (cnt >= 60) return;
for (auto to : g[v]) {
if (was[to]) continue;
dp[to] = Move(to);
dfs1(to);
dp[v] = Move(v);
}
}
long long solve() {
for (int i = 0; i < m; i++) {
g[a[i]].push_back(b[i]);
g[b[i]].push_back(a[i]);
}
dp[p] = v;
dfs(p);
memset(was, 0, sizeof(was));
Move(1), ioi
dfs1();
return res;
}
} S2;
long long Ioi(int n, int m, int a[], int b[], int p, int v, int t) {
S2 = Solve2(n, m, a, b, p, v, t);
return S2.solve();
}
#ifdef IOI2018
int main() {
freopen ("in.txt", "r", stdin);
S2.solve();
ioi
}
#endif
Compilation message
Joi.cpp: In constructor 'Solve1::Solve1(int, int, int*, int*, long long int, int)':
Joi.cpp:15:11: warning: 'Solve1::b' will be initialized after [-Wreorder]
int *a, *b;
^
Joi.cpp:14:12: warning: 'long long int Solve1::x' [-Wreorder]
long long x;
^
Joi.cpp:24:3: warning: when initialized here [-Wreorder]
Solve1(int n, int m, int a[], int b[], long long x, int T) :
^
Joi.cpp:14:12: warning: 'Solve1::x' will be initialized after [-Wreorder]
long long x;
^
Joi.cpp:13:12: warning: 'int Solve1::T' [-Wreorder]
int n, m, T;
^
Joi.cpp:24:3: warning: when initialized here [-Wreorder]
Solve1(int n, int m, int a[], int b[], long long x, int T) :
^
Ioi.cpp: In constructor 'Solve2::Solve2(int, int, int*, int*, int, int, int)':
Ioi.cpp:14:11: warning: 'Solve2::b' will be initialized after [-Wreorder]
int *a, *b;
^
Ioi.cpp:13:12: warning: 'int Solve2::p' [-Wreorder]
int n, m, p, v, T;
^
Ioi.cpp:23:3: warning: when initialized here [-Wreorder]
Solve2(int n, int m, int a[], int b[], int p, int v, int T) :
^
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
20 ms |
19804 KB |
Wrong Answer [7] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
53 ms |
22916 KB |
Wrong Answer [7] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
22 ms |
23512 KB |
Do not print anything on standard output. |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
61 ms |
23644 KB |
Wrong Answer [7] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
51 ms |
23776 KB |
Wrong Answer [7] |
2 |
Halted |
0 ms |
0 KB |
- |