Submission #530121
Source Code Expand
#include <stdio.h>
#include <cstring>
#include <vector>
#include <stack>
#include <map>
#define MAX_N 100000
#define MAX_X 1000000000
using namespace std;
int N, X;
struct edge {
int dist;
int cost;
};
vector<edge> graph[MAX_N];
void load() {
scanf("%d %d", &N, &X);
for(int i=0; i<N-1; i++) {
int x, y;
long c;
scanf("%d %d %ld", &x, &y, &c);
graph[x-1].push_back((edge) { y-1, c });
graph[y-1].push_back((edge) { x-1, c });
}
}
long long solve() {
stack<int> s;
map<long, int> counter;
counter[0] = 1;
long vals[N];
long long ans=0;
s.push(0);
vals[0] = 0;
char mark[N];
memset(mark, 0, sizeof(char)*N);
while(!s.empty()) {
int i = s.top();
mark[i] = 1;
s.pop();
vector<edge> v = graph[i];
for(unsigned int j=0; j<v.size(); j++) {
edge e = v[j];
if( mark[e.dist] ) continue;
long val = vals[i] ^ e.cost;
vals[e.dist] = val;
s.push(e.dist);
ans += counter[val ^ X];
counter[val] += 1;
}
}
return ans;
}
int main(void) {
load();
printf("%lld\n", solve());
return 0;
}
Submission Info
| Submission Time |
|
| Task |
C - エックスオア多橋君 |
| User |
lackdog |
| Language |
C++11 (GCC 4.9.2) |
| Score |
100 |
| Code Size |
1165 Byte |
| Status |
AC |
| Exec Time |
318 ms |
| Memory |
20528 KiB |
Compile Error
./Main.cpp: In function ‘void load()’:
./Main.cpp:24:42: warning: narrowing conversion of ‘c’ from ‘long int’ to ‘int’ inside { } [-Wnarrowing]
graph[x-1].push_back((edge) { y-1, c });
^
./Main.cpp:25:42: warning: narrowing conversion of ‘c’ from ‘long int’ to ‘int’ inside { } [-Wnarrowing]
graph[y-1].push_back((edge) { x-1, c });
^
./Main.cpp:19:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d", &N, &X);
^
./Main.cpp:23:35: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d %ld", &x, &y, &c);
^
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
100 / 100 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt |
| All |
subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt |
| Case Name |
Status |
Exec Time |
Memory |
| subtask0_sample_01.txt |
AC |
47 ms |
3544 KiB |
| subtask0_sample_02.txt |
AC |
39 ms |
3532 KiB |
| subtask0_sample_03.txt |
AC |
39 ms |
3528 KiB |
| subtask1_01.txt |
AC |
38 ms |
3476 KiB |
| subtask1_02.txt |
AC |
42 ms |
3520 KiB |
| subtask1_03.txt |
AC |
318 ms |
20528 KiB |
| subtask1_04.txt |
AC |
299 ms |
20528 KiB |
| subtask1_05.txt |
AC |
297 ms |
20436 KiB |
| subtask1_06.txt |
AC |
109 ms |
7504 KiB |
| subtask1_07.txt |
AC |
132 ms |
8020 KiB |
| subtask1_08.txt |
AC |
130 ms |
7980 KiB |
| subtask1_09.txt |
AC |
190 ms |
9000 KiB |
| subtask1_10.txt |
AC |
189 ms |
9048 KiB |
| subtask1_11.txt |
AC |
39 ms |
3536 KiB |
| subtask1_12.txt |
AC |
38 ms |
3544 KiB |
| subtask1_13.txt |
AC |
154 ms |
8108 KiB |
| subtask1_14.txt |
AC |
152 ms |
8024 KiB |
| subtask1_15.txt |
AC |
54 ms |
4688 KiB |
| subtask1_16.txt |
AC |
54 ms |
4692 KiB |
| subtask1_17.txt |
AC |
52 ms |
4652 KiB |
| subtask1_18.txt |
AC |
53 ms |
4688 KiB |
| subtask1_19.txt |
AC |
54 ms |
4764 KiB |
| subtask1_20.txt |
AC |
53 ms |
4672 KiB |
| subtask1_21.txt |
AC |
52 ms |
4696 KiB |
| subtask1_22.txt |
AC |
55 ms |
4676 KiB |
| subtask1_23.txt |
AC |
56 ms |
4692 KiB |
| subtask1_24.txt |
AC |
59 ms |
4656 KiB |