提出 #66749423


ソースコード 拡げる

#define _CRT_SECURE_NO_WARNINGS
#define _USE_MATH_DEFINES

#include <algorithm>
#include <cstdio>
#include <ctime>
#include <map>
#include <string>
#include <cstring>
#include <vector>
#include <set>
#include <stack>
#include <list>
#include <queue>
#include <deque>
#include <cassert>
#include <iostream>
#include <cmath>
#include <sstream>
#include <complex>
#include <limits>
#include <functional>
#include <memory.h>
#include <inttypes.h>

using namespace std;

typedef long long int64;
typedef unsigned long long uint64;

#define y1 _dsfkjdsfksdj
#define y0 _sfsdkfdop

typedef unsigned int uint;
typedef unsigned char uchar;
typedef vector<int64> vi64;
typedef vector<vi64> vvi64;
typedef vector<vvi64> vvvi64;
typedef vector<double> vd;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<vvi> vvvi;
typedef vector<string> vs;
typedef pair<int,int> pii;
typedef pair<int,string> pis;
typedef pair<string,string> pss;
typedef pair<int,pii> piii;
typedef pair<pii,pii> piiii;
typedef pair<int64,int64> pii64;
typedef pair<pii64,int64> piii64;
typedef vector<pii64> vpii64;
typedef pair<int64,pii> qelem;
typedef vector<pii> vpii;
typedef vector<vpii> vvpii;
typedef pair<double,int> pdi;
typedef pair<double,pii> pdii;
typedef pair<double,double> pdd;
typedef pair<double,pdd> pddd;
typedef pair<pdd,int> pddi;

int n, m;
vvpii g;
vvi was;

void dfs(int x, int mask) {
    if (was[x][mask]) {
        return;
    }

    was[x][mask] = 1;
    for (const pii& cur : g[x]) {
        int nx = cur.first;
        int nmask = mask ^ cur.second;
        dfs(nx, nmask);
    }
}

int main() {
#ifdef _PKHAU_DEBUG
    freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout);
#endif
    ios_base::sync_with_stdio(false); cin.tie(0);

    cin >> n >> m;
    was.assign(n, vi(1 << 10, 0));
    g.resize(n);
    int x, y, z;
    for (int i = 0; i < m; ++i) {
        cin >> x >> y >> z;
        --x, --y;
        g[x].push_back(pii(y, z));
    }
    dfs(0, 0);

    int res = -1;
    for (int i = 0; i < (1 << 10); ++i) {
        if (was[n - 1][i]) {
            res = i;
            break;
        }
    }

    cout << res << endl;

    return 0;
}

提出情報

提出日時
問題 D - XOR Shortest Walk
ユーザ pkhaustov
言語 C++ 20 (Clang 16.0.6)
得点 400
コード長 2270 Byte
結果 AC
実行時間 16 ms
メモリ 10800 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 3
AC × 33
セット名 テストケース
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
ケース名 結果 実行時間 メモリ
hand_01.txt AC 1 ms 3536 KiB
hand_02.txt AC 1 ms 3460 KiB
hand_03.txt AC 1 ms 3468 KiB
hand_04.txt AC 1 ms 3400 KiB
hand_05.txt AC 1 ms 3472 KiB
hand_06.txt AC 1 ms 3492 KiB
hand_07.txt AC 1 ms 3456 KiB
hand_08.txt AC 1 ms 3516 KiB
random_01.txt AC 1 ms 3600 KiB
random_02.txt AC 2 ms 5888 KiB
random_03.txt AC 1 ms 3420 KiB
random_04.txt AC 2 ms 5112 KiB
random_05.txt AC 1 ms 3584 KiB
random_06.txt AC 1 ms 4396 KiB
random_07.txt AC 1 ms 3612 KiB
random_08.txt AC 2 ms 5748 KiB
random_09.txt AC 1 ms 3588 KiB
random_10.txt AC 2 ms 6908 KiB
random_11.txt AC 1 ms 3504 KiB
random_12.txt AC 2 ms 5988 KiB
random_13.txt AC 3 ms 4784 KiB
random_14.txt AC 5 ms 6920 KiB
random_15.txt AC 2 ms 3944 KiB
random_16.txt AC 2 ms 5676 KiB
random_17.txt AC 3 ms 7492 KiB
random_18.txt AC 3 ms 7648 KiB
random_19.txt AC 16 ms 7648 KiB
random_20.txt AC 8 ms 7616 KiB
random_21.txt AC 11 ms 10732 KiB
random_22.txt AC 12 ms 10800 KiB
sample_01.txt AC 1 ms 3460 KiB
sample_02.txt AC 1 ms 3464 KiB
sample_03.txt AC 2 ms 7016 KiB