/* Sample solution to orienteering from NWERC'14. * * Bad Algorithm: check answer mod many small primes. * * Author: Per Austrin */ #include #include #include using namespace std; typedef long long ll; int N; ll L, d[20][20]; const int MAX_MOD = 1000; int MOD; bool tried[14][1<<14][MAX_MOD]; bool PossModP(int at, int left, int x) { if (!left) return (x + d[at][0]) % MOD == L % MOD; bool &t = tried[at][left][x]; if (!t) { t = true; for (int i = 1; i < N; ++i) if ((left & (1<