Submission #13051796
Source Code Expand
// Problem : D - Teleporter
// Contest : AtCoder - AtCoder Beginner Contest 167
// URL : https://atcoder.jp/contests/abc167/tasks/abc167_d
// Memory Limit : 1024 MB
// Time Limit : 2000 ms
// Powered by CP Editor (https://github.com/cpeditor/cpeditor)
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define eb emplace_back
#define pb push_back
#define size(s) (int)s.size()
#define int long long
#define vi vector<int>
#define vs vector<string>
#define vv vector<vector<int>>
#define pii pair<int, int>
#define m_p(x, y) make_pair(x, y)
#define vp vector<pair<int, int>>
#define setbits(x) __builtin_popcountll(x)
#define f first
#define se second
#define inc(v, n, x) v.assign(n, x)
#define incd(v, n) v.resize(n)
#define iniz(n) memset(n, 0, sizeof(n))
#define inin(n) memset(n, -1, sizeof(n))
#define inimi(n) memset(n, 0xc0, sizeof(n))
#define inima(n) memset(n, 0x3f, sizeof(n))
#define all(v) (v).begin(), (v).end()
using namespace std;
using namespace __gnu_pbds;
template <typename T1, typename T2>
istream &operator>>(istream &is, vector<pair<T1, T2>> &v) {
for (pair<T1, T2> &t : v) is >> t.f >> t.se;
return is;
}
template <typename T>
istream &operator>>(istream &is, vector<T> &v) {
for (T &t : v) is >> t;
return is;
}
template <typename T>
ostream &operator<<(ostream &os, const vector<T> &v) {
for (const T &t : v) {
os << t << " ";
}
os << '\n';
return os;
}
double pi = acos(-1.0);
int md = 1e9 + 7;
const int INF = 1e15;
int dx1[] = {0, 0, -1, 1};
int dy1[] = {1, -1, 0, 0};
template <class T>
T abst(T a) {
return a < 0 ? -a : a;
}
template <class T>
using ordered_set = tree<T, null_type, less_equal<T>, rb_tree_tag,
tree_order_statistics_node_update>;
// find_by_order(k) returns iterator to kth element starting from 0;
// order_of_key(k) returns count of elements strictly smaller than k;
struct HASH {
size_t operator()(const pii &x) const {
return (size_t)x.first * 37U + (size_t)x.second;
}
};
struct custom_hash {
static uint64_t splitmix64(uint64_t x) {
x += 0x9e3779b97f4a7c15;
x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
return x ^ (x >> 31);
}
size_t operator()(uint64_t x) const {
static const uint64_t FIXED_RANDOM =
chrono::steady_clock::now().time_since_epoch().count();
return splitmix64(x + FIXED_RANDOM);
}
};
int Pow(int n, int x) {
int ans = 1;
while (x > 0) {
if (x & 1) ans = (ans * n) % md;
n = (n * n) % md;
x = x >> 1;
}
return ans;
}
vi fact, inv;
void inverse(int n) {
inv.resize(n + 1);
inv[0] = 1;
for (int i = 1; i <= n; i++) inv[i] = Pow(fact[i], md - 2);
}
void factorial(int n) {
fact.resize(n + 1);
fact[0] = 1;
for (int i = 1; i <= n; i++) fact[i] = (fact[i - 1] * i) % md;
}
int ncr(int n, int r) { return (((fact[n] * inv[r]) % md) * inv[n - r]) % md; }
template <class T>
T max2(T a, T b) {
return a > b ? a : b;
}
template <class T>
T min2(T a, T b) {
return a < b ? a : b;
}
template <class T>
T maxm(initializer_list<T> l) {
T ans = -INF;
for (T i : l) ans = max2(ans, i);
return ans;
}
int dp[200001][61];
void solve() {
int n, k;
cin >> n >> k;
vi v(n);
cin >> v;
int x = (int)log2(k);
x += ((double)x != log2(k));
for (int i = 1; i <= n; i++) dp[i][0] = v[i - 1];
for (int i = 1; i <= x; i++) {
for (int j = 1; j <= n; j++) dp[j][i] = dp[dp[j][i - 1]][i - 1];
}
int pos = 1;
for (int i = 0; i <= 60; i++) {
if (k & (1LL << i)) {
pos = dp[pos][i];
}
}
cout << pos;
}
int32_t main() {
ios_base::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(NULL);
int t = 1;
// cin>>t;
for (int i = 1; i <= t; i++) {
solve();
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Teleporter |
| User | Its_Easy |
| Language | C++ (GCC 9.2.1) |
| Score | 400 |
| Code Size | 3933 Byte |
| Status | AC |
| Exec Time | 256 ms |
| Memory | 100284 KiB |
Judge Result
| Set Name | Sample | Subtask1 | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt |
| Subtask1 | sample_01.txt, sample_02.txt, sub1_01.txt, sub1_02.txt, sub1_03.txt, sub1_04.txt, sub1_05.txt, sub1_06.txt, sub1_07.txt, sub1_08.txt, sub1_09.txt, sub1_10.txt, sub1_11.txt, sub1_12.txt, sub1_13.txt, sub1_14.txt, sub1_15.txt, sub1_16.txt, sub1_17.txt, sub1_18.txt, sub1_19.txt, sub1_20.txt, sub1_21.txt, sub1_22.txt, sub1_23.txt, sub1_24.txt, sub1_25.txt, sub1_26.txt, sub1_27.txt, sub1_28.txt, sub1_29.txt, sub1_30.txt, sub1_31.txt, sub1_32.txt, sub1_33.txt, sub1_34.txt, sub1_35.txt, sub1_36.txt, sub1_37.txt, sub1_38.txt, sub1_39.txt, sub1_40.txt, sub1_41.txt, sub1_42.txt, sub1_43.txt, sub1_44.txt, sub1_45.txt, sub1_46.txt, sub1_47.txt, sub1_48.txt, sub1_49.txt, sub1_50.txt, sub1_51.txt, sub1_52.txt, sub1_53.txt, sub1_54.txt, sub1_55.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample_01.txt | AC | 2 ms | 3792 KiB |
| sample_02.txt | AC | 2 ms | 3716 KiB |
| sub1_01.txt | AC | 30 ms | 16256 KiB |
| sub1_02.txt | AC | 123 ms | 67268 KiB |
| sub1_03.txt | AC | 18 ms | 12656 KiB |
| sub1_04.txt | AC | 243 ms | 100092 KiB |
| sub1_05.txt | AC | 230 ms | 100100 KiB |
| sub1_06.txt | AC | 120 ms | 68944 KiB |
| sub1_07.txt | AC | 105 ms | 63544 KiB |
| sub1_08.txt | AC | 248 ms | 100168 KiB |
| sub1_09.txt | AC | 125 ms | 62476 KiB |
| sub1_10.txt | AC | 210 ms | 87956 KiB |
| sub1_11.txt | AC | 75 ms | 43524 KiB |
| sub1_12.txt | AC | 236 ms | 100096 KiB |
| sub1_13.txt | AC | 245 ms | 100272 KiB |
| sub1_14.txt | AC | 251 ms | 100284 KiB |
| sub1_15.txt | AC | 131 ms | 68320 KiB |
| sub1_16.txt | AC | 245 ms | 100284 KiB |
| sub1_17.txt | AC | 167 ms | 68568 KiB |
| sub1_18.txt | AC | 256 ms | 100148 KiB |
| sub1_19.txt | AC | 43 ms | 22308 KiB |
| sub1_20.txt | AC | 252 ms | 100244 KiB |
| sub1_21.txt | AC | 78 ms | 65380 KiB |
| sub1_22.txt | AC | 84 ms | 75124 KiB |
| sub1_23.txt | AC | 54 ms | 44920 KiB |
| sub1_24.txt | AC | 106 ms | 81352 KiB |
| sub1_25.txt | AC | 181 ms | 79152 KiB |
| sub1_26.txt | AC | 134 ms | 62744 KiB |
| sub1_27.txt | AC | 58 ms | 57504 KiB |
| sub1_28.txt | AC | 79 ms | 68848 KiB |
| sub1_29.txt | AC | 49 ms | 26904 KiB |
| sub1_30.txt | AC | 103 ms | 53540 KiB |
| sub1_31.txt | AC | 7 ms | 8952 KiB |
| sub1_32.txt | AC | 62 ms | 67016 KiB |
| sub1_33.txt | AC | 30 ms | 29856 KiB |
| sub1_34.txt | AC | 64 ms | 58008 KiB |
| sub1_35.txt | AC | 11 ms | 9152 KiB |
| sub1_36.txt | AC | 227 ms | 94548 KiB |
| sub1_37.txt | AC | 101 ms | 94068 KiB |
| sub1_38.txt | AC | 113 ms | 96244 KiB |
| sub1_39.txt | AC | 221 ms | 91488 KiB |
| sub1_40.txt | AC | 39 ms | 21832 KiB |
| sub1_41.txt | AC | 101 ms | 100164 KiB |
| sub1_42.txt | AC | 115 ms | 100280 KiB |
| sub1_43.txt | AC | 120 ms | 100240 KiB |
| sub1_44.txt | AC | 118 ms | 100160 KiB |
| sub1_45.txt | AC | 236 ms | 100228 KiB |
| sub1_46.txt | AC | 245 ms | 100268 KiB |
| sub1_47.txt | AC | 113 ms | 100168 KiB |
| sub1_48.txt | AC | 121 ms | 100284 KiB |
| sub1_49.txt | AC | 244 ms | 100280 KiB |
| sub1_50.txt | AC | 237 ms | 100172 KiB |
| sub1_51.txt | AC | 95 ms | 90120 KiB |
| sub1_52.txt | AC | 49 ms | 54064 KiB |
| sub1_53.txt | AC | 29 ms | 27100 KiB |
| sub1_54.txt | AC | 130 ms | 100236 KiB |
| sub1_55.txt | AC | 116 ms | 100272 KiB |