Please sign in first.
Submission #67339966
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#include <atcoder/all>
using namespace atcoder;
using ll = long long;
using mint = modint998244353;
int main() {
int H, W, K;
cin >> H >> W >> K;
const int INF = 1 << 30;
vector dp(H, vector<int>(W, INF));
vector cand(H, vector<vector<int>>(W));
using T = tuple<int, int, int>;
priority_queue<T, vector<T>, greater<T>> que;
vector<pair<int, int>> dir = {
{0, 1},
{0, -1},
{1, 0},
{-1, 0}
};
auto inside = [&](int r, int c) {
return (0 <= r && r < H && 0 <= c && c < W);
};
for(int i = 0; i < K; i++) {
int r, c;
cin >> r >> c;
r--, c--;
dp[r][c] = 0;
que.push(T{0, r, c});
}
while(!que.empty()) {
auto [d, r, c] = que.top();
que.pop();
if(dp[r][c] != d) continue;
// cout << "# " << r + 1 << " " << c + 1 << " " << d << endl;
for(const auto &[dr, dc] : dir) {
int r2 = r + dr;
int c2 = c + dc;
if(inside(r2, c2)) {
for(int i = 0; i <= cand[r2][c2].size(); i++) {
if(i == cand[r2][c2].size() || dp[r][c] < cand[r2][c2][i]) {
cand[r2][c2].insert(cand[r2][c2].begin() + i, dp[r][c] + 1);
break;
}
}
// cout << dp[r][c] << endl;
if(cand[r2][c2].size() >= 2 && dp[r2][c2] > cand[r2][c2][1]) {
dp[r2][c2] = cand[r2][c2][1];
que.push(T{dp[r2][c2], r2, c2});
// cout << "# " << r2 + 1 << " " << c2 + 1 << " " << dp[r2][c2] << endl;
// for(int x : cand[r2][c2]) cout << x << " "; cout << endl;
}
}
}
}
ll ans = 0;
for(int i = 0; i < H; i++) {
for(int j = 0; j < W; j++) {
if(dp[i][j] < INF) ans += dp[i][j];
// if(dp[i][j] < INF) cout << dp[i][j] << " ";
// else cout << ". ";
}
// cout << endl;
}
cout << ans << endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - No Passage |
| User | ripity |
| Language | C++ 20 (gcc 12.2) |
| Score | 525 |
| Code Size | 2190 Byte |
| Status | AC |
| Exec Time | 2286 ms |
| Memory | 531184 KiB |
Compile Error
Main.cpp: In function ‘int main()’:
Main.cpp:43:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
43 | for(int i = 0; i <= cand[r2][c2].size(); i++) {
| ~~^~~~~~~~~~~~~~~~~~~~~~
Main.cpp:44:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
44 | if(i == cand[r2][c2].size() || dp[r][c] < cand[r2][c2][i]) {
| ~~^~~~~~~~~~~~~~~~~~~~~~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 525 / 525 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt, 01_test_37.txt, 01_test_38.txt, 01_test_39.txt, 01_test_40.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3608 KiB |
| 00_sample_01.txt | AC | 1 ms | 3412 KiB |
| 00_sample_02.txt | AC | 1 ms | 3580 KiB |
| 01_test_00.txt | AC | 1 ms | 3504 KiB |
| 01_test_01.txt | AC | 1 ms | 3612 KiB |
| 01_test_02.txt | AC | 1 ms | 3604 KiB |
| 01_test_03.txt | AC | 1 ms | 3648 KiB |
| 01_test_04.txt | AC | 2 ms | 3740 KiB |
| 01_test_05.txt | AC | 1 ms | 3508 KiB |
| 01_test_06.txt | AC | 2 ms | 3828 KiB |
| 01_test_07.txt | AC | 1 ms | 3564 KiB |
| 01_test_08.txt | AC | 2 ms | 3720 KiB |
| 01_test_09.txt | AC | 3 ms | 3892 KiB |
| 01_test_10.txt | AC | 11 ms | 13732 KiB |
| 01_test_11.txt | AC | 8 ms | 8996 KiB |
| 01_test_12.txt | AC | 4 ms | 4104 KiB |
| 01_test_13.txt | AC | 6 ms | 6664 KiB |
| 01_test_14.txt | AC | 15 ms | 21836 KiB |
| 01_test_15.txt | AC | 8 ms | 9712 KiB |
| 01_test_16.txt | AC | 5 ms | 6524 KiB |
| 01_test_17.txt | AC | 16 ms | 27428 KiB |
| 01_test_18.txt | AC | 29 ms | 48912 KiB |
| 01_test_19.txt | AC | 22 ms | 36284 KiB |
| 01_test_20.txt | AC | 74 ms | 146884 KiB |
| 01_test_21.txt | AC | 12 ms | 18904 KiB |
| 01_test_22.txt | AC | 127 ms | 42408 KiB |
| 01_test_23.txt | AC | 524 ms | 167628 KiB |
| 01_test_24.txt | AC | 1168 ms | 319584 KiB |
| 01_test_25.txt | AC | 2021 ms | 505644 KiB |
| 01_test_26.txt | AC | 127 ms | 250724 KiB |
| 01_test_27.txt | AC | 125 ms | 250464 KiB |
| 01_test_28.txt | AC | 123 ms | 250308 KiB |
| 01_test_29.txt | AC | 125 ms | 250476 KiB |
| 01_test_30.txt | AC | 3 ms | 4104 KiB |
| 01_test_31.txt | AC | 136 ms | 45560 KiB |
| 01_test_32.txt | AC | 435 ms | 263692 KiB |
| 01_test_33.txt | AC | 534 ms | 307932 KiB |
| 01_test_34.txt | AC | 2286 ms | 531156 KiB |
| 01_test_35.txt | AC | 2247 ms | 531184 KiB |
| 01_test_36.txt | AC | 1 ms | 3528 KiB |
| 01_test_37.txt | AC | 1 ms | 3528 KiB |
| 01_test_38.txt | AC | 2 ms | 3748 KiB |
| 01_test_39.txt | AC | 120 ms | 249420 KiB |
| 01_test_40.txt | AC | 1 ms | 3528 KiB |