QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#288725 | #7866. Teleportation | ucup-team1469# | WA | 15ms | 4356kb | C++17 | 4.4kb | 2023-12-23 13:14:11 | 2023-12-23 13:14:11 |
Judging History
answer
#ifndef LOCAL
#define FAST_IO
#endif
// ============
#include <bits/stdc++.h>
#define OVERRIDE(a, b, c, d, ...) d
#define REP2(i, n) for (i32 i = 0; i < (i32)(n); ++i)
#define REP3(i, m, n) for (i32 i = (i32)(m); i < (i32)(n); ++i)
#define REP(...) OVERRIDE(__VA_ARGS__, REP3, REP2)(__VA_ARGS__)
#define PER2(i, n) for (i32 i = (i32)(n)-1; i >= 0; --i)
#define PER3(i, m, n) for (i32 i = (i32)(n)-1; i >= (i32)(m); --i)
#define PER(...) OVERRIDE(__VA_ARGS__, PER3, PER2)(__VA_ARGS__)
#define ALL(x) begin(x), end(x)
#define LEN(x) (i32)(x.size())
using namespace std;
using u32 = unsigned int;
using u64 = unsigned long long;
using i32 = signed int;
using i64 = signed long long;
using f64 = double;
using f80 = long double;
using pi = pair<i32, i32>;
using pl = pair<i64, i64>;
template <typename T>
using V = vector<T>;
template <typename T>
using VV = V<V<T>>;
template <typename T>
using VVV = V<V<V<T>>>;
template <typename T>
using VVVV = V<V<V<V<T>>>>;
template <typename T>
using PQR = priority_queue<T, V<T>, greater<T>>;
template <typename T>
bool chmin(T &x, const T &y) {
if (x > y) {
x = y;
return true;
}
return false;
}
template <typename T>
bool chmax(T &x, const T &y) {
if (x < y) {
x = y;
return true;
}
return false;
}
template <typename T>
i32 lob(const V<T> &arr, const T &v) {
return (i32)(lower_bound(ALL(arr), v) - arr.begin());
}
template <typename T>
i32 upb(const V<T> &arr, const T &v) {
return (i32)(upper_bound(ALL(arr), v) - arr.begin());
}
template <typename T>
V<i32> argsort(const V<T> &arr) {
V<i32> ret;
iota(ALL(ret), 0);
sort(ALL(ret), [&](i32 i, i32 j) -> bool {
if (arr[i] == arr[j]) {
return i < j;
} else {
return arr[i] < arr[j];
}
});
return ret;
}
#ifdef INT128
using u128 = __uint128_t;
using i128 = __int128_t;
istream &operator>>(istream &is, i128 &x) {
i64 v;
is >> v;
x = v;
return is;
}
ostream &operator<<(ostream &os, i128 x) {
os << (i64)x;
return os;
}
istream &operator>>(istream &is, u128 &x) {
u64 v;
is >> v;
x = v;
return is;
}
ostream &operator<<(ostream &os, u128 x) {
os << (u64)x;
return os;
}
#endif
[[maybe_unused]] constexpr i32 INF = 1000000100;
[[maybe_unused]] constexpr i64 INF64 = 3000000000000000100;
struct SetUpIO {
SetUpIO() {
#ifdef FAST_IO
ios::sync_with_stdio(false);
cin.tie(nullptr);
#endif
cout << fixed << setprecision(15);
}
} set_up_io;
void scan(char &x) { cin >> x; }
void scan(u32 &x) { cin >> x; }
void scan(u64 &x) { cin >> x; }
void scan(i32 &x) { cin >> x; }
void scan(i64 &x) { cin >> x; }
void scan(string &x) { cin >> x; }
template <typename T>
void scan(V<T> &x) {
for (T &ele : x) {
scan(ele);
}
}
void read() {}
template <typename Head, typename... Tail>
void read(Head &head, Tail &...tail) {
scan(head);
read(tail...);
}
#define CHAR(...) string __VA_ARGS__; read(__VA_ARGS__);
#define U32(...) u32 __VA_ARGS__; read(__VA_ARGS__);
#define U64(...) u64 __VA_ARGS__; read(__VA_ARGS__);
#define I32(...) i32 __VA_ARGS__; read(__VA_ARGS__);
#define I64(...) i64 __VA_ARGS__; read(__VA_ARGS__);
#define STR(...) string __VA_ARGS__; read(__VA_ARGS__);
#define VEC(type, name, size) V<type> name(size); read(name);
#define VVEC(type, name, size1, size2) VV<type> name(size1, V<type>(size2)); read(name);
// ============
#ifdef DEBUGF
#else
#define DBG(x) (void) 0
#endif
void solve() {
I32(n, k);
VEC(i32, a, n);
V<i32> dist(n, INF);
PQR<pair<i32, i32>> que;
dist[0] = 0;
que.emplace(0, 0);
while (!que.empty()) {
auto [d, v] = que.top();
que.pop();
if (d > dist[v]) {
continue;
}
if (v != 0 && chmin(dist[(v + 1) % n], dist[v] + 1)) {
que.emplace(dist[v] + 1, (v + 1) % n);
}
if (chmin(dist[(v + a[v]) % n], dist[v] + 1)) {
que.emplace(dist[v] + 1, (v + a[v]) % n);
}
if (chmin(dist[(v + a[v] + 1) % n], dist[v] + 2)) {
que.emplace(dist[v] + 2, (v + a[v] + 1) % n);
}
}
cout << dist[k] << '\n';
}
int main() {
i32 t = 1;
//cin >> t;
while (t--) {
solve();
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3632kb
input:
4 3 0 1 2 3
output:
4
result:
ok 1 number(s): "4"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3476kb
input:
4 3 0 0 0 0
output:
4
result:
ok 1 number(s): "4"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3540kb
input:
4 3 2 2 2 2
output:
2
result:
ok 1 number(s): "2"
Test #4:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
2 1 0 0
output:
2
result:
ok 1 number(s): "2"
Test #5:
score: 0
Accepted
time: 0ms
memory: 3496kb
input:
2 1 1 1
output:
1
result:
ok 1 number(s): "1"
Test #6:
score: 0
Accepted
time: 0ms
memory: 3500kb
input:
300 25 182 9 13 211 258 132 27 42 218 200 271 258 164 121 8 84 29 195 141 290 110 0 272 93 142 134 140 32 232 99 162 199 297 287 212 29 182 53 61 98 116 282 75 245 230 165 22 4 179 89 274 231 46 299 248 208 200 285 221 50 221 199 294 241 195 138 22 204 113 100 132 276 158 146 238 178 100 94 131 157 ...
output:
10
result:
ok 1 number(s): "10"
Test #7:
score: 0
Accepted
time: 0ms
memory: 3544kb
input:
300 49 5 0 5 6 8 1 2 6 8 8 0 7 0 0 2 0 7 3 6 0 7 2 6 4 3 9 9 6 5 0 9 1 4 1 5 2 5 5 2 5 5 5 9 9 2 7 0 0 6 6 9 7 10 3 5 2 6 3 0 8 6 4 4 9 7 4 8 0 2 4 5 0 6 5 7 0 9 5 1 3 9 2 3 5 8 2 0 1 0 8 2 4 5 1 10 8 8 8 5 3 1 7 6 8 10 1 6 5 8 2 1 1 10 1 5 1 6 1 7 5 3 3 6 8 8 6 2 0 4 9 7 1 8 5 9 5 0 3 1 8 0 0 2 8 0...
output:
14
result:
ok 1 number(s): "14"
Test #8:
score: 0
Accepted
time: 1ms
memory: 3568kb
input:
2000 1535 297 1103 1985 224 645 892 493 1146 258 729 686 230 1509 1197 1970 577 1462 672 1133 737 226 1248 1236 492 473 495 1395 942 641 1010 39 759 625 1684 725 235 327 1217 321 512 675 331 1864 915 1386 713 1559 1475 643 1347 1697 101 1533 1511 1596 1486 776 439 148 460 919 1529 1463 1070 1940 597...
output:
12
result:
ok 1 number(s): "12"
Test #9:
score: 0
Accepted
time: 2ms
memory: 3636kb
input:
10000 8363 435 437 137 171 494 479 76 224 219 348 459 215 351 368 101 323 208 271 149 40 290 281 491 234 1 304 405 106 26 112 89 471 232 237 445 482 215 17 357 26 33 3 185 45 234 426 61 60 5 244 32 88 93 128 19 381 222 187 356 177 259 116 60 268 157 50 293 152 380 38 296 466 425 460 281 168 408 138 ...
output:
30
result:
ok 1 number(s): "30"
Test #10:
score: 0
Accepted
time: 2ms
memory: 3928kb
input:
30000 9089 1388 1944 499 465 901 1627 647 1311 1135 1649 263 898 852 1600 940 33 164 18 110 916 1705 1975 966 1493 336 457 695 1893 1575 2000 1146 1268 1633 1047 1106 1541 681 807 236 596 471 374 954 851 1283 392 1042 624 1244 1593 160 1976 1856 115 1100 743 1874 1580 1775 440 1470 1150 287 1526 109...
output:
17
result:
ok 1 number(s): "17"
Test #11:
score: 0
Accepted
time: 4ms
memory: 3592kb
input:
50000 10744 8 6 9 7 10 8 7 9 7 8 4 6 9 5 4 8 9 3 0 3 6 0 6 0 6 2 1 3 7 10 4 8 7 8 2 7 8 3 0 9 2 10 10 3 0 5 8 3 1 6 3 0 3 8 6 7 8 0 5 3 6 0 4 2 6 3 8 3 0 1 9 0 6 1 5 5 8 3 5 2 7 0 9 0 7 2 5 8 4 9 0 8 2 8 6 0 4 2 6 8 8 8 4 6 9 1 6 6 8 9 8 6 4 9 4 5 2 6 5 5 1 10 1 8 9 5 2 0 2 4 8 5 6 9 10 0 7 8 7 5 9 ...
output:
1845
result:
ok 1 number(s): "1845"
Test #12:
score: 0
Accepted
time: 13ms
memory: 4356kb
input:
100000 80007 23901 71465 9481 98727 78470 22914 2469 5998 53210 25993 3995 11348 30510 56447 17276 78307 18315 42068 38635 63126 26255 63984 57248 58304 64365 17838 28517 18979 95944 36315 6075 69529 96508 6939 6038 56047 41846 82117 41053 49669 95895 45890 74635 90735 75412 27250 87729 68343 66201 ...
output:
16
result:
ok 1 number(s): "16"
Test #13:
score: 0
Accepted
time: 8ms
memory: 3904kb
input:
100000 94250 1 8 8 6 6 0 8 3 0 7 1 4 1 9 9 3 5 5 1 8 5 9 0 1 4 5 8 6 5 6 8 6 7 5 4 5 7 8 5 5 1 5 5 4 6 5 5 7 6 3 3 10 10 2 6 5 6 8 3 4 7 3 2 2 6 10 9 7 3 7 6 7 2 5 8 9 4 5 2 7 1 1 7 9 10 9 3 7 0 3 5 5 7 5 5 0 10 6 1 8 7 2 9 4 1 1 7 1 6 5 3 6 7 5 9 8 6 3 6 0 8 2 0 10 2 0 2 3 0 7 10 3 3 5 6 10 4 10 2 ...
output:
16242
result:
ok 1 number(s): "16242"
Test #14:
score: 0
Accepted
time: 10ms
memory: 3832kb
input:
100000 20417 4 20 16 4 17 18 11 5 7 12 9 6 14 9 9 5 12 2 1 5 3 4 18 14 20 16 12 3 19 10 5 4 3 10 17 9 6 15 2 0 6 16 14 15 10 20 3 2 11 11 19 15 1 20 5 0 1 1 9 2 20 10 0 6 6 15 16 11 13 7 6 16 9 8 1 2 8 7 8 14 10 8 14 15 2 13 18 5 12 4 9 4 20 16 11 17 0 19 5 14 2 10 7 5 8 4 19 2 20 16 10 19 10 18 18 ...
output:
1707
result:
ok 1 number(s): "1707"
Test #15:
score: 0
Accepted
time: 9ms
memory: 3828kb
input:
100000 77449 183 51 136 72 1 114 108 185 35 169 104 25 21 96 181 124 8 92 26 20 94 79 46 99 111 128 110 178 19 146 97 56 67 50 4 186 79 71 150 8 133 170 196 60 75 143 101 188 197 120 138 5 129 85 56 17 127 94 69 141 78 72 21 133 39 47 170 191 83 181 79 9 74 78 65 126 193 167 165 153 128 19 173 183 4...
output:
622
result:
ok 1 number(s): "622"
Test #16:
score: 0
Accepted
time: 15ms
memory: 4208kb
input:
100000 75846 1031 1136 1083 43 1149 1431 1975 1513 1240 350 425 558 1179 32 2237 1575 1501 383 615 700 1437 208 96 1622 1161 2372 1486 2251 2267 1134 1123 2776 2105 2337 1130 882 412 2548 1199 2340 2216 2603 2338 2316 2675 2542 1924 2846 1340 1367 581 2560 1149 2377 1742 1955 2119 1102 588 1416 724 ...
output:
46
result:
ok 1 number(s): "46"
Test #17:
score: 0
Accepted
time: 15ms
memory: 4216kb
input:
100000 29144 1180 13 991 2756 4797 4801 2930 2650 1472 2188 314 1724 200 1556 314 4580 2808 4528 820 1878 1768 917 384 4498 2358 3523 4161 2135 4804 3450 1838 3821 964 2476 1913 1514 805 1416 3330 458 2433 1547 3858 1381 103 704 3996 721 3988 392 1871 654 4829 2670 4480 3400 4588 1433 3763 4892 1868...
output:
18
result:
ok 1 number(s): "18"
Test #18:
score: 0
Accepted
time: 15ms
memory: 4172kb
input:
100000 62039 8812 8350 4373 2152 6155 6457 4157 170 2598 7398 638 8675 3641 2693 8757 334 2846 148 5707 107 6572 7238 2792 2904 2605 202 2496 9806 8620 1704 272 6287 1935 5733 6380 4852 5374 4133 4648 4674 7842 2907 6474 8853 3878 9137 5848 5721 2274 6585 2287 1480 7059 9873 5551 6701 8177 999 842 4...
output:
15
result:
ok 1 number(s): "15"
Test #19:
score: 0
Accepted
time: 5ms
memory: 3820kb
input:
100000 94687 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1...
output:
94688
result:
ok 1 number(s): "94688"
Test #20:
score: 0
Accepted
time: 5ms
memory: 3864kb
input:
100000 92517 0 1 0 0 0 1 1 1 2 0 2 0 1 2 2 0 0 1 0 1 1 2 2 1 1 0 1 0 1 2 0 0 2 1 2 1 2 1 1 1 2 2 2 1 0 2 1 2 1 2 1 0 1 0 2 1 2 0 1 2 1 0 2 2 1 1 0 1 0 0 0 2 0 1 2 2 2 1 2 0 1 2 1 1 1 2 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 1 1 2 2 2 0 0 0 1 0 1 0 0 2 1 0 2 0 1 2 2 2 2 1 0 0 2 1 1 1 2 2 1 2 1 0 1 1 1 0 0 2 2...
output:
69476
result:
ok 1 number(s): "69476"
Test #21:
score: 0
Accepted
time: 5ms
memory: 3832kb
input:
100000 80101 3 3 1 0 1 3 2 0 0 0 2 2 1 1 1 0 1 2 2 0 1 0 1 0 2 2 3 2 2 2 2 0 1 2 2 1 1 3 1 2 2 1 0 3 3 1 0 0 3 2 2 0 1 0 3 1 0 1 0 1 3 3 3 3 3 3 0 0 0 1 1 3 0 1 3 1 0 3 3 2 1 0 2 2 0 3 1 1 2 1 1 3 1 2 0 0 1 2 2 2 0 1 1 2 2 2 2 2 2 0 2 2 3 0 2 3 0 0 3 2 1 0 2 3 3 0 1 0 0 3 0 1 0 3 1 3 1 2 1 2 1 2 1 1...
output:
44759
result:
ok 1 number(s): "44759"
Test #22:
score: 0
Accepted
time: 4ms
memory: 3824kb
input:
100000 96857 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
output:
96858
result:
ok 1 number(s): "96858"
Test #23:
score: 0
Accepted
time: 4ms
memory: 3848kb
input:
100000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
output:
2
result:
ok 1 number(s): "2"
Test #24:
score: 0
Accepted
time: 5ms
memory: 3884kb
input:
100000 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 0 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0...
output:
1
result:
ok 1 number(s): "1"
Test #25:
score: 0
Accepted
time: 5ms
memory: 3908kb
input:
100000 1 2 0 1 0 0 0 1 1 1 2 0 2 0 1 2 2 0 0 1 0 1 1 2 2 1 1 0 1 0 1 2 0 0 2 1 2 1 2 1 1 1 2 2 2 1 0 2 1 2 1 2 1 0 1 0 2 1 2 0 1 2 1 0 2 2 1 1 0 1 0 0 0 2 0 1 2 2 2 1 2 0 1 2 1 1 1 2 1 1 0 1 0 0 0 0 0 0 1 1 1 0 1 1 1 2 2 2 0 0 0 1 0 1 0 0 2 1 0 2 0 1 2 2 2 2 1 0 0 2 1 1 1 2 2 1 2 1 0 1 1 1 0 0 2 2 0...
output:
75114
result:
ok 1 number(s): "75114"
Test #26:
score: 0
Accepted
time: 5ms
memory: 3836kb
input:
100000 1 3 3 3 1 0 1 3 2 0 0 0 2 2 1 1 1 0 1 2 2 0 1 0 1 0 2 2 3 2 2 2 2 0 1 2 2 1 1 3 1 2 2 1 0 3 3 1 0 0 3 2 2 0 1 0 3 1 0 1 0 1 3 3 3 3 3 3 0 0 0 1 1 3 0 1 3 1 0 3 3 2 1 0 2 2 0 3 1 1 2 1 1 3 1 2 0 0 1 2 2 2 0 1 1 2 2 2 2 2 2 0 2 2 3 0 2 3 0 0 3 2 1 0 2 3 3 0 1 0 0 3 0 1 0 3 1 3 1 2 1 2 1 2 1 1 2...
output:
55920
result:
ok 1 number(s): "55920"
Test #27:
score: -100
Wrong Answer
time: 4ms
memory: 3820kb
input:
100000 1 10 1 8 8 6 6 0 8 3 0 7 1 4 1 9 9 3 5 5 1 8 5 9 0 1 4 5 8 6 5 6 8 6 7 5 4 5 7 8 5 5 1 5 5 4 6 5 5 7 6 3 3 10 10 2 6 5 6 8 3 4 7 3 2 2 6 10 9 7 3 7 6 7 2 5 8 9 4 5 2 7 1 1 7 9 10 9 3 7 0 3 5 5 7 5 5 0 10 6 1 8 7 2 9 4 1 1 7 1 6 5 3 6 7 5 9 8 6 3 6 0 8 2 0 10 2 0 2 3 0 7 10 3 3 5 6 10 4 10 2 2...
output:
1000000100
result:
wrong answer 1st numbers differ - expected: '17206', found: '1000000100'