Submission #66756102
Source Code Expand
Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#ifndef _Alignof
#define _Alignof __alignof__
#endif
#include <bits/stdc++.h>
#define LOOP(n) for (int _i = 0; _i < (n); _i++)
#define REP(i, n) for (int i = 0; i < (n); ++i)
#define RREP(i, n) for (int i = (n); i >= 0; --i)
#define FOR(i, r, n) for (int i = (r); i < (n); ++i)
#define ALL(obj) begin(obj), end(obj)
#define yes "Yes"
#define no "No"
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<ll,int> pli;
typedef pair<int,ll> pil;
typedef vector<vector<int>> vvi;
typedef vector<vector<ll>> vvl;
const vector<char> alpha = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int dx[4] = {0, 1, 0, -1};
int dy[4] = {1, 0, -1, 0};
const ll INF = 1000000007;
const ll MOD=10000;
template<typename T> inline bool chmax(T &a, T b) { return ((a < b) ? (a = b, true) : (false)); }
template<typename T> inline bool chmin(T &a, T b) { return ((a > b) ? (a = b, true) : (false)); }
#ifndef _Alignof
#define _Alignof __alignof__
#endif
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
int main(){
int N, M;
cin >> N >> M;
vector<vector<pii>> G(N);
REP(i, M){
int a, b, c;
cin >> a >> b >> c;
a--, b--;
G[a].push_back({b, c});
}
vector<int> d(N, -1);
queue<int> que;
d[0] = 0;
que.push(0);
vector<int> base;
while(!que.empty()){
int u = que.front();
que.pop();
for(auto &edge: G[u]){
int v = edge.first, w = edge.second;
int nd = d[u] ^ w;
if(d[v] == -1){
d[v] = nd;
que.push(v);
} else {
int cyc = nd ^ d[v];
if(cyc != 0){
for(auto b : base) {
cyc = min(cyc, cyc ^ b);
}
if(cyc != 0) base.push_back(cyc);
}
}
}
}
if(d[N-1] == -1){
cout << -1 << endl;
return 0;
}
int ans = d[N-1];
sort(base.begin(), base.end(), greater<int>());
for(auto b : base){
if((ans ^ b) < ans) ans ^= b;
}
cout << ans << endl;
}
Submission Info
| Submission Time |
|
| Task |
D - XOR Shortest Walk |
| User |
una_o0 |
| Language |
C++ 17 (gcc 12.2) |
| Score |
0 |
| Code Size |
2328 Byte |
| Status |
WA |
| Exec Time |
1 ms |
| Memory |
3680 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
0 / 400 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample_01.txt, sample_02.txt, sample_03.txt |
| All |
hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, hand_05.txt, hand_06.txt, hand_07.txt, hand_08.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| Case Name |
Status |
Exec Time |
Memory |
| hand_01.txt |
AC |
1 ms |
3552 KiB |
| hand_02.txt |
AC |
1 ms |
3496 KiB |
| hand_03.txt |
AC |
1 ms |
3424 KiB |
| hand_04.txt |
AC |
1 ms |
3492 KiB |
| hand_05.txt |
AC |
1 ms |
3488 KiB |
| hand_06.txt |
WA |
1 ms |
3492 KiB |
| hand_07.txt |
WA |
1 ms |
3492 KiB |
| hand_08.txt |
WA |
1 ms |
3552 KiB |
| random_01.txt |
AC |
1 ms |
3500 KiB |
| random_02.txt |
AC |
1 ms |
3576 KiB |
| random_03.txt |
AC |
1 ms |
3496 KiB |
| random_04.txt |
AC |
1 ms |
3644 KiB |
| random_05.txt |
AC |
1 ms |
3480 KiB |
| random_06.txt |
AC |
1 ms |
3500 KiB |
| random_07.txt |
AC |
1 ms |
3480 KiB |
| random_08.txt |
AC |
1 ms |
3676 KiB |
| random_09.txt |
AC |
1 ms |
3616 KiB |
| random_10.txt |
AC |
1 ms |
3476 KiB |
| random_11.txt |
AC |
1 ms |
3544 KiB |
| random_12.txt |
AC |
1 ms |
3464 KiB |
| random_13.txt |
AC |
1 ms |
3468 KiB |
| random_14.txt |
AC |
1 ms |
3512 KiB |
| random_15.txt |
AC |
1 ms |
3488 KiB |
| random_16.txt |
AC |
1 ms |
3448 KiB |
| random_17.txt |
AC |
1 ms |
3512 KiB |
| random_18.txt |
AC |
1 ms |
3544 KiB |
| random_19.txt |
AC |
1 ms |
3556 KiB |
| random_20.txt |
AC |
1 ms |
3584 KiB |
| random_21.txt |
AC |
1 ms |
3588 KiB |
| random_22.txt |
AC |
1 ms |
3632 KiB |
| sample_01.txt |
AC |
1 ms |
3556 KiB |
| sample_02.txt |
AC |
1 ms |
3680 KiB |
| sample_03.txt |
AC |
1 ms |
3520 KiB |