Submission #39957

#TimeUsernameProblemLanguageResultExecution timeMemory
39957funcsrSpace Pirate (JOI14_space_pirate)C++14
10 / 100
2000 ms61784 KiB
#include <iostream> #include <queue> #include <cassert> #include <set> #include <vector> #include <algorithm> using namespace std; typedef pair<int, int> P; #define rep(i, n) for (int i=0; i<(n); i++) #define all(x) x.begin(), x.end() #define uniq(x) x.erase(unique(all(x)), x.end()) #define index(x, y) (int)(lower_bound(all(x), y) - x.begin()) #define pb push_back #define _1 first #define _2 second #define INF 1145141919 int N; long long K; int A[100000]; int F[60][100000]; long long C[100000]; int dist[3000][3000]; inline int f(int x, long long k) { for (int i=59; i>=0; i--) if ((k>>i)&1) x = F[i][x]; return x; } int main() { cin >> N >> K; if (N > 3000) abort(); rep(i, N) cin >> A[i], A[i]--; int def_dst = f(0, K); rep(a, N) { rep(b, N) { int orig = A[a]; A[a] = b; rep(i, N) F[0][i] = A[i]; rep(i, 59) rep(j, N) F[i+1][j] = F[i][F[i][j]]; rep(i, N) { rep(j, N) dist[i][j] = INF; int x = i; rep(_, N) { dist[i][x] = min(dist[i][x], _); x = A[x]; } } C[f(0, K)]++; A[a] = orig; } } rep(i, N) cout << C[i] << "\n"; return 0; }

Compilation message (stderr)

space_pirate.cpp: In function 'int main()':
space_pirate.cpp:33:7: warning: unused variable 'def_dst' [-Wunused-variable]
   int def_dst = f(0, K);
       ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...