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
AC × 2
AC × 7
WA × 5
AC × 18
WA × 7
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