Submission #66780072


Source Code Expand

Copy
#include <bits/stdc++.h>
using namespace std;
using P = pair<int,int>;
int main(){
int N, M;
cin >> N >> M;
vector<vector<P>> G(N);
for(int i = 0; i < M; i++){
int A, B, W;
cin >> A >> B >> W;
A--; B--;
G[A].push_back({B,W});
}
vector<int> dist(N, -1);
queue<int> Q;
dist[0] = 0; Q.push(0);
while(!Q.empty()){
int u = Q.front();
Q.pop();
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <bits/stdc++.h>
using namespace std;
using P = pair<int,int>;

int main(){
    int N, M;
    cin >> N >> M;
    vector<vector<P>> G(N);
    for(int i = 0; i < M; i++){ 
        int A, B, W;
        cin >> A >> B >> W;
        A--; B--;
        G[A].push_back({B,W});
    }

    vector<int> dist(N, -1);
    queue<int> Q;
    dist[0] = 0; Q.push(0);
    while(!Q.empty()){
        int u = Q.front();
        Q.pop();
        for(auto [v, w] : G[u]){
            if(dist[v] == -1){
                dist[v] = dist[u] ^ w;
                Q.push(v);
            }
        }
    }

    vector<int> basis;
    for(int u = 0; u < N; u++){
        for(auto [v, w] : G[u]){
            if(dist[u] != -1 && dist[v] != -1){
                int c = dist[u] ^ w ^ dist[v];
                for(int b : basis) c = min(c, c ^ b);
                if(c) basis.push_back(c);
            }
        }
    }
    
    sort(basis.begin(), basis.end(), greater<int>());

    if(dist[N - 1] == -1){
        cout << -1 << endl;
    }
    else {
        int ans = dist[N - 1];
        for(int b : basis){
            ans = min(ans, ans ^ b);
        }
        cout << ans << endl;
    }
}

Submission Info

Submission Time
Task D - XOR Shortest Walk
User u5a91
Language C++ 23 (gcc 12.2)
Score 0
Code Size 1221 Byte
Status WA
Exec Time 2 ms
Memory 3748 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 400
Status
AC × 3
AC × 30
WA × 3
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 2 ms 3444 KiB
hand_02.txt AC 1 ms 3560 KiB
hand_03.txt AC 2 ms 3616 KiB
hand_04.txt AC 2 ms 3636 KiB
hand_05.txt AC 1 ms 3568 KiB
hand_06.txt WA 2 ms 3472 KiB
hand_07.txt WA 1 ms 3700 KiB
hand_08.txt WA 2 ms 3572 KiB
random_01.txt AC 2 ms 3560 KiB
random_02.txt AC 2 ms 3604 KiB
random_03.txt AC 2 ms 3476 KiB
random_04.txt AC 2 ms 3544 KiB
random_05.txt AC 2 ms 3500 KiB
random_06.txt AC 2 ms 3720 KiB
random_07.txt AC 1 ms 3564 KiB
random_08.txt AC 2 ms 3592 KiB
random_09.txt AC 2 ms 3516 KiB
random_10.txt AC 2 ms 3568 KiB
random_11.txt AC 2 ms 3500 KiB
random_12.txt AC 2 ms 3544 KiB
random_13.txt AC 2 ms 3572 KiB
random_14.txt AC 2 ms 3580 KiB
random_15.txt AC 2 ms 3444 KiB
random_16.txt AC 2 ms 3532 KiB
random_17.txt AC 2 ms 3496 KiB
random_18.txt AC 2 ms 3560 KiB
random_19.txt AC 2 ms 3456 KiB
random_20.txt AC 2 ms 3748 KiB
random_21.txt AC 2 ms 3612 KiB
random_22.txt AC 2 ms 3484 KiB
sample_01.txt AC 1 ms 3568 KiB
sample_02.txt AC 1 ms 3568 KiB
sample_03.txt AC 2 ms 3584 KiB


2025-06-16 (Mon)
13:35:11 +09:00