Submission #2949195


Source Code Expand

#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <unordered_map>
#include <functional>
#include <cstring>
#include <cmath>
#include <ctime>
#include <cstdlib>

using namespace std;
typedef long long llong;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<llong, llong> pll;

int n, m;

struct bigint {
    unsigned int x[16];
    bigint() {
        for (int i = 0; i < 16; ++i) x[i] = 0;
    }
    void operator|=(const bigint &p) {
        for (int i = 0; i < 16; ++i) {
            x[i] |= p.x[i];
        }
    }
    void set(int i) {
        x[i >> 5] |= (1u << (i & 31));
    }
    int get(int i) {
        return (x[i >> 5] >> (i & 31)) & 1;
    }
    bool operator==(const bigint &p) const {
        for (int i = 0; i < 16; ++i) if (x[i] != p.x[i]) return 0;
        return 1;
    }
} es[500], edge[64][1 << 8];

int main() {
	ios_base::sync_with_stdio(false); cin.tie(0);
	cin >> n >> m;
	for (int i = 0; i < m; ++i) {
        int a, b;
        cin >> a >> b; --a; --b;
        es[a].set(b);
	}
	
	for (int i = 0; i < 64; ++i) {
        for (int j = 0; j < (1 << 8); ++j) {
            for (int k = 0; k < 8; ++k) {
                if ((j >> k) & 1) {
                    edge[i][j] |= es[i << 3 | k];
                }
            }
        }
	}
	
	bigint st, tp, ed, zr;
	st.set(0);
	for (int i = 0; i < n; ++i) ed.set(i);
	for (int it = 0; it < n * n + 2; ++it) {
        if (st == ed) {
            printf("%d\n", it);
            return 0;
        }
        for (int i = 0; i < 64; ++i) {
            int x = 0;
            for (int j = 0; j < 8; ++j) {
                if (st.get(i << 3 | j)) x |= (1 << j);
            }
            tp |= edge[i][x];
        }
        st = tp;
        tp = zr;
	}
	printf("-1\n");
	return 0;
}

Submission Info

Submission Time
Task I - Revenge of the Endless BFS
User imeimi2000
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1926 Byte
Status RE
Exec Time 125 ms
Memory 1280 KB

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
RE × 42
Set Name Test Cases
All 00_sample_00, 00_sample_01, 00_sample_02, 10_small_0, 10_small_1, 10_small_2, 10_small_3, 10_small_4, 20_random_0, 20_random_1, 20_random_2, 20_random_3, 20_random_4, 20_random_5, 20_random_6, 20_random_7, 20_random_8, 20_random_9, 90_cycle_like_0, 90_cycle_like_1, 90_cycle_like_2, 90_cycle_like_3, 90_cycle_like_4, 91_cycle_like_dense_0, 91_cycle_like_dense_1, 91_cycle_like_dense_2, 91_cycle_like_dense_3, 91_cycle_like_dense_4, 91_cycle_like_dense_5, 91_cycle_like_dense_6, 91_cycle_like_dense_7, 91_cycle_like_dense_8, 91_cycle_like_dense_9, 99_ng_max_dense_0, 99_ng_max_odd_prime_0, 99_ng_max_odd_prime_dense_0, 99_ng_max_odd_prime_dense_1, 99_ng_max_odd_prime_dense_2, 99_ng_max_odd_prime_dense_3, 99_ng_max_odd_prime_dense_4, 99_ng_max_prime_0, 99_ok_max_0
Case Name Status Exec Time Memory
00_sample_00 RE 98 ms 1280 KB
00_sample_01 RE 98 ms 1280 KB
00_sample_02 RE 99 ms 1280 KB
10_small_0 RE 99 ms 1280 KB
10_small_1 RE 98 ms 1280 KB
10_small_2 RE 98 ms 1280 KB
10_small_3 RE 99 ms 1280 KB
10_small_4 RE 98 ms 1280 KB
20_random_0 RE 99 ms 1280 KB
20_random_1 RE 99 ms 1280 KB
20_random_2 RE 103 ms 1280 KB
20_random_3 RE 100 ms 1280 KB
20_random_4 RE 99 ms 1280 KB
20_random_5 RE 112 ms 1280 KB
20_random_6 RE 124 ms 1280 KB
20_random_7 RE 101 ms 1280 KB
20_random_8 RE 104 ms 1280 KB
20_random_9 RE 99 ms 1280 KB
90_cycle_like_0 RE 99 ms 1280 KB
90_cycle_like_1 RE 101 ms 1280 KB
90_cycle_like_2 RE 98 ms 1280 KB
90_cycle_like_3 RE 99 ms 1280 KB
90_cycle_like_4 RE 99 ms 1280 KB
91_cycle_like_dense_0 RE 122 ms 1280 KB
91_cycle_like_dense_1 RE 98 ms 1280 KB
91_cycle_like_dense_2 RE 99 ms 1280 KB
91_cycle_like_dense_3 RE 100 ms 1280 KB
91_cycle_like_dense_4 RE 118 ms 1280 KB
91_cycle_like_dense_5 RE 101 ms 1280 KB
91_cycle_like_dense_6 RE 114 ms 1280 KB
91_cycle_like_dense_7 RE 103 ms 1280 KB
91_cycle_like_dense_8 RE 105 ms 1280 KB
91_cycle_like_dense_9 RE 108 ms 1280 KB
99_ng_max_dense_0 RE 125 ms 1280 KB
99_ng_max_odd_prime_0 RE 98 ms 1280 KB
99_ng_max_odd_prime_dense_0 RE 120 ms 1280 KB
99_ng_max_odd_prime_dense_1 RE 113 ms 1280 KB
99_ng_max_odd_prime_dense_2 RE 125 ms 1280 KB
99_ng_max_odd_prime_dense_3 RE 122 ms 1280 KB
99_ng_max_odd_prime_dense_4 RE 109 ms 1280 KB
99_ng_max_prime_0 RE 98 ms 1280 KB
99_ok_max_0 RE 99 ms 1280 KB