Submission #7996053
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define FOR(i, m, n) for (int i = (m); i < (n); i++)
#define FORR(i, m, n) for (int i = (m); i >= (n); i--)
#define REP(i, n) FOR(i, 0, (n))
#define REPR(i, n) FORR(i, (n) - 1, 0)
#define REP1(i, n) FOR(i, 1, (n) + 1)
#define ALL(c) (c).begin(), (c).end()
template<class T> inline bool chmin(T& a, T b) {if (a > b) {a = b; return true;} return false;}
template<class T> inline bool chmax(T& a, T b) {if (a < b) {a = b; return true;} return false;}
const char EOL = '\n';
const int MOD = 1000000007;
const int INF = 1000000001;
void solve();
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
int calc_mod(string s, int d) {
int r = 0;
REP(i, s.size()) r = (r * 10 + (s[i] - '0')) % d;
return r;
}
void solve() {
int n, a;
string s;
cin >> n >> a >> s;
a--;
vector<int> b(n);
REP(i, n) {
cin >> b[i];
b[i]--;
}
auto full = [&](int start, int k) {
int c = start;
REP(i, k) c = b[c];
return c;
};
auto cycle = [&](string k) {
vector<int> p(n, -1);
p[a] = 0;
int c = a;
int l;
REP1(i, 2 * n) {
c = b[c];
if (p[c] != -1) {
l = i - p[c];
return full(c, (calc_mod(k, l) - p[c] + l) % l);
}
p[c] = i;
}
};
int ans;
if (s.size() < 6 || s == "100000") {
int k = stoi(s);
if (n * 2 >= k) {
ans = full(a, k);
} else {
ans = cycle(s);
}
} else {
ans = cycle(s);
}
cout << ans + 1 << EOL;
}
Submission Info
Submission Time |
|
Task |
D - へんてこ辞書 |
User |
mdstoy |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
1799 Byte |
Status |
WA |
Exec Time |
10 ms |
Memory |
1232 KB |
Judge Result
Set Name |
Sample |
Subtask1 |
All |
Score / Max Score |
0 / 0 |
0 / 50 |
0 / 50 |
Status |
|
|
|
Set Name |
Test Cases |
Sample |
subtask0_sample_01.txt, subtask0_sample_03.txt |
Subtask1 |
subtask0_0.txt, subtask0_1.txt, subtask0_2.txt, subtask0_3.txt, subtask0_4.txt, subtask0_5.txt, subtask0_6.txt, subtask0_7.txt, subtask0_8.txt, subtask0_9.txt, subtask0_sample_01.txt, subtask0_sample_03.txt |
All |
subtask0_0.txt, subtask0_1.txt, subtask0_2.txt, subtask0_3.txt, subtask0_4.txt, subtask0_5.txt, subtask0_6.txt, subtask0_7.txt, subtask0_8.txt, subtask0_9.txt, subtask0_sample_01.txt, subtask0_sample_03.txt, subtask1_0.txt, subtask1_1.txt, subtask1_10.txt, subtask1_11.txt, subtask1_2.txt, subtask1_3.txt, subtask1_4.txt, subtask1_5.txt, subtask1_6.txt, subtask1_7.txt, subtask1_8.txt, subtask1_9.txt, subtask1_sample_02.txt |
Case Name |
Status |
Exec Time |
Memory |
subtask0_0.txt |
WA |
8 ms |
896 KB |
subtask0_1.txt |
AC |
7 ms |
768 KB |
subtask0_2.txt |
AC |
8 ms |
896 KB |
subtask0_3.txt |
AC |
6 ms |
768 KB |
subtask0_4.txt |
WA |
9 ms |
1024 KB |
subtask0_5.txt |
WA |
7 ms |
768 KB |
subtask0_6.txt |
AC |
6 ms |
768 KB |
subtask0_7.txt |
WA |
8 ms |
896 KB |
subtask0_8.txt |
WA |
6 ms |
768 KB |
subtask0_9.txt |
AC |
8 ms |
896 KB |
subtask0_sample_01.txt |
AC |
1 ms |
256 KB |
subtask0_sample_03.txt |
AC |
1 ms |
256 KB |
subtask1_0.txt |
AC |
7 ms |
896 KB |
subtask1_1.txt |
WA |
8 ms |
1152 KB |
subtask1_10.txt |
AC |
10 ms |
1232 KB |
subtask1_11.txt |
AC |
1 ms |
256 KB |
subtask1_2.txt |
WA |
7 ms |
896 KB |
subtask1_3.txt |
AC |
6 ms |
768 KB |
subtask1_4.txt |
AC |
7 ms |
896 KB |
subtask1_5.txt |
AC |
9 ms |
1024 KB |
subtask1_6.txt |
AC |
7 ms |
976 KB |
subtask1_7.txt |
AC |
6 ms |
896 KB |
subtask1_8.txt |
AC |
9 ms |
1152 KB |
subtask1_9.txt |
AC |
10 ms |
1152 KB |
subtask1_sample_02.txt |
AC |
1 ms |
256 KB |