QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#518075 | #8643. Board Game | green_gold_dog# | 3 | 17ms | 7248kb | C++20 | 2.3kb | 2024-08-13 15:31:52 | 2024-08-13 15:31:53 |
Judging History
answer
//#pragma GCC optimize("Ofast")
//#pragma GCC target("avx,avx2,sse,sse2,sse3,ssse3,sse4,abm,popcnt,mmx")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef long double ldb;
typedef complex<double> cd;
constexpr ll INF64 = 9'000'000'000'000'000'000, INF32 = 2'000'000'000, MOD = 1'000'000'007;
constexpr db PI = acos(-1);
constexpr bool IS_FILE = false, IS_TEST_CASES = false;
random_device rd;
mt19937 rnd32(rd());
mt19937_64 rnd64(rd());
template<typename T>
bool assign_max(T& a, T b) {
if (b > a) {
a = b;
return true;
}
return false;
}
template<typename T>
bool assign_min(T& a, T b) {
if (b < a) {
a = b;
return true;
}
return false;
}
template<typename T>
T square(T a) {
return a * a;
}
template<>
struct std::hash<pair<ll, ll>> {
ll operator() (pair<ll, ll> p) const {
return ((__int128)p.first * MOD + p.second) % INF64;
}
};
vector<ll> dist(ll st, vector<vector<ll>>& arr, vector<bool>& stop, ll start_cost, ll stop_cost) {
vector<ll> d(arr.size(), INF64);
d[st] = start_cost;
priority_queue<pair<ll, ll>, vector<pair<ll, ll>>, greater<pair<ll, ll>>> pq;
pq.emplace(d[st], st);
while (!pq.empty()) {
auto[nd, v] = pq.top();
pq.pop();
if (d[v] != nd) {
continue;
}
for (auto i : arr[v]) {
if (assign_min(d[i], nd + 1 + stop[i] * stop_cost)) {
pq.emplace(d[i], i);
}
}
}
return d;
}
void solve() {
ll n, m, k;
cin >> n >> m >> k;
vector<vector<ll>> arr(n);
for (ll i = 0; i < m; i++) {
ll a, b;
cin >> a >> b;
a--;
b--;
arr[a].push_back(b);
arr[b].push_back(a);
}
string s;
cin >> s;
vector<ll> pos(k);
for (ll i = 0; i < k; i++) {
cin >> pos[i];
pos[i]--;
}
vector<bool> stop(n, false), stop2(n, false);
for (ll i = 0; i < n; i++) {
stop[i] = s[i] == '1';
}
for (ll i = 0; i < n; i++) {
if (!stop[i]) {
continue;
}
for (auto j : arr[i]) {
if (stop[j]) {
stop2[i] = true;
break;
}
}
}
vector<ll> ans = dist(pos[0], arr, stop, 0, INF32);
for (auto i : ans) {
cout << i << '\n';
}
}
int main() {
if (IS_FILE) {
freopen("", "r", stdin);
freopen("", "w", stdout);
}
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
ll t = 1;
if (IS_TEST_CASES) {
cin >> t;
}
for (ll i = 0; i < t; i++) {
solve();
}
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 3
Accepted
Test #1:
score: 3
Accepted
time: 1ms
memory: 3888kb
input:
3000 3000 3000 2378 2385 1560 2450 189 2980 44 1140 425 1843 167 1563 439 2010 7 951 1311 1370 1305 2085 150 1600 16 2469 431 2674 317 2191 1845 2918 2195 2917 1210 1577 125 1049 911 1160 504 2060 376 2420 1676 2969 1343 1576 284 1869 835 1989 273 1330 234 1906 1482 1524 2415 2460 388 2897 2177 2600...
output:
76 52 40 54 67 54 62 36 44 32 60 61 58 29 34 22 64 25 31 33 14 79 80 58 68 29 67 69 47 60 48 55 45 11 24 51 17 24 47 29 50 57 89 54 62 63 55 61 7 41 61 27 64 60 63 55 44 43 39 48 57 47 65 65 55 43 51 48 22 57 47 28 52 51 50 61 41 61 69 50 41 53 42 58 45 26 60 52 30 56 47 56 32 55 44 58 56 71 69 41 6...
result:
ok 3000 lines
Test #2:
score: 3
Accepted
time: 10ms
memory: 5476kb
input:
30000 30000 30000 11640 15443 5731 12870 5066 28442 11803 29263 2399 20658 4911 11282 676 1962 10390 19686 6117 6722 22155 28614 2932 14721 11403 13488 6697 22434 19113 26975 20347 20663 15743 16072 19116 25652 10891 19389 1373 27384 14607 29107 6192 29223 7196 10267 15467 16280 21828 26032 365 982 ...
output:
2610 3673 15 7659 10149 8209 878 4102 7582 10483 6418 6826 11546 12814 11394 7792 9097 7484 14575 913 5802 584 8172 961 7434 8828 14665 7642 14032 6284 8299 3040 9576 4953 47 13721 10634 3362 9103 4901 4022 11866 14548 5132 9252 13165 143 9494 2845 13149 5616 3023 13560 12315 8126 2002 5706 10657 14...
result:
ok 30000 lines
Test #3:
score: 3
Accepted
time: 13ms
memory: 7248kb
input:
50000 49999 50000 23237 38489 46903 47222 463 17722 5061 37126 21771 23294 4851 25450 408 41933 1298 5353 8952 44686 5842 17741 15835 33052 16401 17274 33117 33174 7070 24079 22424 46115 5336 6340 35165 36940 3308 36325 12014 20182 391 48629 9736 42693 5246 46582 22861 48389 3338 6669 31354 49668 11...
output:
8988 372 12633 8934 15728 15677 431 10910 20467 16345 10441 16923 12383 15090 11112 19353 21485 9819 17810 3071 41 99 8479 9616 1173 13790 1142 14800 19055 675 1086 2353 22330 18271 2373 11286 20247 21236 18133 11260 2792 19399 9049 18056 14190 3523 22890 19479 14288 9335 561 19226 12836 11409 8485 ...
result:
ok 50000 lines
Test #4:
score: 3
Accepted
time: 11ms
memory: 6748kb
input:
49900 50000 100 21419 22725 19367 26559 4942 22766 16196 32249 12443 43575 17415 32668 3559 30282 6024 31186 4553 32107 1085 24970 27857 48472 15126 48937 22784 33748 16961 18301 21066 30382 41567 46191 17677 42298 2910 32294 14609 16464 14131 44143 8413 13472 17266 18767 567 48263 2410 29825 22159 ...
output:
4729 6824 18742 805 16289 4349 1296 5007 15785 15606 18374 4228 1685 19748 16689 7552 13232 5985 19529 7256 13074 6094 12823 7464 19302 3985 5081 4794 2513 6637 10664 6726 11115 11493 10542 4882 2626 10108 17287 690 8100 6464 10436 3789 14356 11646 18179 20174 19124 1188 20268 1232 4167 127 1224 166...
result:
ok 49900 lines
Subtask #2:
score: 0
Wrong Answer
Test #5:
score: 0
Wrong Answer
time: 1ms
memory: 3836kb
input:
3000 3000 3000 1391 1542 299 1578 1346 1528 46 1259 1513 2261 201 1717 56 1635 199 2327 847 882 1977 2161 465 1954 1723 2580 482 2105 906 2207 747 2742 2026 2845 1565 1809 295 311 278 2408 1215 2583 520 832 464 638 1223 1346 1799 2703 1022 2717 887 2160 619 2109 165 2478 879 1343 319 2463 56 815 109...
output:
25 47 29 15 51 29 39 23 47 39 23 39 27 39 5 39 19 26 30 31 43 32 39 2000000060 24 13 2000000057 52 31 24 36 22 33 31 32 22 36 43 24 25 30 32 2000000063 31 49 34 31 31 39 21 33 2000000063 34 2000000040 23 43 44 37 32 37 48 2000000060 33 2000000053 42 46 28 2000000057 15 47 43 42 41 39 38 14 34 42 33 ...
result:
wrong answer 24th lines differ - expected: '86790', found: '2000000060'
Subtask #3:
score: 0
Wrong Answer
Test #13:
score: 0
Wrong Answer
time: 0ms
memory: 3828kb
input:
3000 3000 3000 997 1695 884 1068 654 1853 6 520 947 2382 787 2407 818 1795 2347 2718 46 1560 1180 2169 582 1881 1080 1766 770 2877 365 419 365 749 1315 2536 223 1867 216 545 1311 1952 1598 2796 141 620 1681 2938 301 2204 866 1710 872 961 369 466 2160 2936 2295 2359 1310 1744 1572 2088 1111 2618 1680...
output:
357 518 350 113 154 370 718 974 1389 588 1322 215 670 9 870 488 375 195 1102 149 1373 944 303 508 1217 19 920 646 699 713 1152 1247 555 751 80 50 584 1361 149 921 140 1183 989 667 455 198 180 813 472 71 112 169 331 600 666 31 860 145 1090 207 496 654 825 1330 278 112 690 1152 885 1412 94 96 771 132 ...
result:
wrong answer 717th lines differ - expected: '807728', found: '2000000456'
Subtask #4:
score: 0
Wrong Answer
Test #23:
score: 0
Wrong Answer
time: 0ms
memory: 3804kb
input:
1500 3000 2 432 1120 324 1221 37 294 50 931 588 1149 178 887 460 517 268 533 649 935 123 1291 642 1025 1145 1489 630 1375 163 1407 842 1004 155 1300 296 1049 380 840 215 1224 283 981 211 1056 75 725 325 1437 591 680 1179 1253 876 1425 382 1230 1065 1436 612 784 121 770 349 633 140 1168 443 1019 103 ...
output:
6 6 7 4 5 5 6 3 5 7 5 6 5 5 5 6 6 6 3 5 5 6 3 6 5 6 3 3 6 6 5 6 4 5 7 6 6 6 5 2 5 5 6 5 4 7 4 4 5 5 5 7 6 5 5 3 6 6 5 5 6 5 6 4 5 6 4 7 3 6 6 4 5 5 4 7 6 6 6 7 5 3 5 6 4 6 4 6 4 6 4 6 5 6 3 4 6 4 5 3 6 5 6 7 4 6 5 6 7 5 4 6 5 5 6 6 6 4 5 5 6 4 4 6 6 6 6 6 6 6 6 5 6 6 5 6 4 6 5 6 6 6 6 5 7 4 6 4 6 5 ...
result:
wrong answer 203rd lines differ - expected: '5', found: '2000000005'
Subtask #5:
score: 0
Wrong Answer
Test #44:
score: 0
Wrong Answer
time: 17ms
memory: 6844kb
input:
50000 49999 2 25634 31370 8027 24849 12312 23307 3731 32856 28725 29829 23424 44542 9950 43281 17138 22049 29393 31047 24061 46387 861 3924 12114 24868 29242 36744 5090 11267 3946 26100 7151 22151 27368 49971 43548 44917 25373 45846 4117 43120 24675 34139 9043 21081 29857 41278 37558 41510 11300 402...
output:
114 120 159 152 68 38 72 118 129 123 155 95 61 164 142 103 72 58 122 97 89 73 64 57 2000000129 59 67 114 111 99 122 60 100 61 20 112 104 103 114 2000000123 113 70 104 93 105 49 118 119 111 177 91 88 87 102 162 146 94 178 108 87 98 130 90 152 41 71 61 145 77 79 94 70 133 80 89 124 2000000077 105 67 3...
result:
wrong answer 25th lines differ - expected: '174', found: '2000000129'
Subtask #6:
score: 0
Skipped
Dependency #5:
0%
Subtask #7:
score: 0
Skipped
Dependency #4:
0%
Subtask #8:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
0%