답안 #590764

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
590764 2022-07-06T10:43:42 Z nguyen31hoang08minh2003 Političari (COCI20_politicari) C++14
70 / 70
21 ms 3216 KB
/*
((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) ((
 )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   ))
((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) ((
 )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   ))
((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) ((
 )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   ))
((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) ((
 )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   ))
((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) (( ((   )) )) ((
*/
#include <bits/stdc++.h>
#define fore(i, a, b) for (signed i = (a), i##_last = (b); i < i##_last; ++i)
#define fort(i, a, b) for (signed i = (a), i##_last = (b); i <= i##_last; ++i)
#define ford(i, a, b) for (signed i = (a), i##_last = (b); i >= i##_last; --i)
#define fi first
#define se second
#define pb push_back
#define sz(x) ((int)(x).size())
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
using namespace std;
using ll = long long;
using ld = long double;

template<class A, class B> bool maxi(A &a, const B &b) {return (a < b) ? (a = b, true):false;};
template<class A, class B> bool mini(A &a, const B &b) {return (a > b) ? (a = b, true):false;};

typedef unsigned long long ull;
typedef pair<int, int> ii;
typedef vector<ll> vi;
typedef vector<ii> vii;
typedef vector<vi> vvi;
typedef vector<vii> vvii;

const int maxN = 505;

int n, t[maxN][maxN], h[maxN][maxN];
vii p;
ll k;

int main() {
    #ifdef LOCAL
        freopen("input.INP", "r", stdin);
    #endif // LOCAL
    cin.tie(0) -> sync_with_stdio(0);
    cout.tie(0);
    cin >> n >> k;
    fort(x, 1, n)
        fort(y, 1, n) {
            cin >> t[x][y];
            h[x][y] = -1;
        }
    p.emplace_back(1, 2);
    h[1][2] = 0;
    --k;
    for (int i = 1, x, y; k > 0; ++i, --k) {
        x = p.back().se;
        y = t[x][p.back().fi];
        if (h[x][y] >= 0) {
            cout << p[h[x][y] + (k - 1) % (i - h[x][y])].fi << '\n';
            return 0;
        }
        p.emplace_back(x, y);
        h[x][y] = i;
    }
    cout << p.back().fi << '\n';
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 336 KB Output is correct
2 Correct 3 ms 1364 KB Output is correct
3 Correct 10 ms 2388 KB Output is correct
4 Correct 15 ms 2828 KB Output is correct
5 Correct 18 ms 3160 KB Output is correct
6 Correct 15 ms 3216 KB Output is correct
7 Correct 0 ms 340 KB Output is correct
8 Correct 2 ms 852 KB Output is correct
9 Correct 4 ms 1364 KB Output is correct
10 Correct 21 ms 2776 KB Output is correct
11 Correct 17 ms 3156 KB Output is correct
12 Correct 19 ms 3160 KB Output is correct
13 Correct 1 ms 460 KB Output is correct
14 Correct 2 ms 852 KB Output is correct