# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
95455 | mzhao | Praktični (COCI18_prakticni) | C++11 | 147 ms | 14836 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#ifdef DEBUG
#define D(x...) printf(x)
#else
#define D(x...)
#endif
#define x first
#define y second
#define MN 100100
int N, M;
struct End {
int n, w, i;
};
vector<End> adj[MN];
int dep[MN];
bool vis[MN];
vector<int> st;
map<int, int> cnt;
vector<pair<int, int>> s;
set<int> t;
void dfs(int n, int d) {
vis[n] = 1;
dep[n] = d;
for (End i : adj[n]) if (!vis[i.n]) {
st.push_back(st.back() ^ i.w);
dfs(i.n, d+1);
st.pop_back();
} else if (dep[i.n] < d) {
int val = st.back() ^ st[dep[i.n]] ^ i.w;
if (val) {
s.push_back({val, i.i});
t.insert(val);
cnt[val]++;
}
}
}
int main() {
scanf("%d%d", &N, &M);
for (int i = 1, A, B, C; i <= M; i++) {
scanf("%d%d%d", &A, &B, &C);
adj[A].push_back({B, C, i});
adj[B].push_back({A, C, i});
}
st.push_back(0);
dfs(1, 0);
sort(s.begin(), s.end());
for (int i = 0; i < s.size(); i++) D("%d %d\n", s[i].x, s[i].y);
D("ANS:\n\n");
printf("%d", t.size());
for (int i = 0; i < s.size(); i++) {
if (!i || s[i].x != s[i-1].x) {
printf("\n%d %d %d", s[i].x, cnt[s[i].x], s[i].y);
} else {
printf(" %d", s[i].y);
}
}
printf("\n");
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |