提出 #41205263
ソースコード 拡げる
#include <atcoder/all>
using namespace atcoder;
#include <bits/stdc++.h>
#include <cassert>
using namespace std;
using ll = long long;
const double pi = 3.14159265359;
const ll INF = 1LL << 60;
template<class T> inline bool chmin(T& a, T b){ if (a > b){a = b; return true;} return false;}
template<class T> inline bool chmax(T& a, T b){ if (a < b){a = b; return true;} return false;}
//using mint = modint998244353;
//using mint = modint1000000007;
//using mint = modint; // mint::set_mod(p); later
//using mint = static_modint<1000000009>;
int N, M;
void dijkstra(int st, const vector<vector<int>> &es, vector<ll> &ds)
{
fill(ds.begin(), ds.end(), INF);
priority_queue<
pair<ll, int>,
vector<pair<ll, int>>,
greater<pair<ll, int>>> que;
ds[st] = 0;
que.push(make_pair(0, st));
while(!que.empty()){
auto [d, i] = que.top(); que.pop();
if (d > ds[i]) continue;
for (int j : es[i]){
if (chmin(ds[j], ds[i] + 1)){
que.push(make_pair(ds[i] + 1, j));
}
}
}
}
vector<ll> dist, distr;
vector<vector<int>> edges, edgesr;
int main()
{
cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
// Input
cin >> N >> M;
vector<string> s(N);
for (auto &t : s) cin >> t;
// Dijkstra from 0 and N-1
dist.resize(N);
distr.resize(N);
edges.resize(N);
edgesr.resize(N);
for (int i = 0; i < N - 1; i++){
for (int j = 0; j < M; j++){
if (i + j + 1 < N && s[i][j] == '1'){
edges[i].push_back(i + j + 1);
edgesr[i + j + 1].push_back(i);
}
}
}
dijkstra(0, edges, dist);
dijkstra(N-1, edgesr, distr);
// Solve and Output
for (int i = 1; i < N - 1; i++){
ll ans = INF;
for (int j = i - 1 - M; j < i; j++){
if (j >= 0){
for (int k : edges[j]){
if (k > i){
chmin(ans, dist[j] + distr[k] + 1);
}
}
}
}
if (ans == INF) cout << -1 << " ";
else cout << ans << " ";
}
cout << endl;
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | F - Teleporter and Closed off |
| ユーザ | unnohideyuki |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 500 |
| コード長 | 2035 Byte |
| 結果 | AC |
| 実行時間 | 97 ms |
| メモリ | 28200 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 500 / 500 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | example_00.txt, example_01.txt |
| All | colored_00.txt, colored_01.txt, colored_02.txt, colored_03.txt, colored_04.txt, colored_05.txt, colored_06.txt, colored_07.txt, colored_08.txt, colored_09.txt, colored_10.txt, colored_11.txt, colored_12.txt, colored_13.txt, colored_14.txt, colored_15.txt, colored_16.txt, colored_17.txt, colored_18.txt, colored_19.txt, colored_20.txt, colored_21.txt, colored_22.txt, colored_23.txt, colored_24.txt, colored_25.txt, example_00.txt, example_01.txt, hand_00.txt, hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, hand_05.txt, hand_06.txt, hand_07.txt, random_00.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| colored_00.txt | AC | 70 ms | 19772 KiB |
| colored_01.txt | AC | 82 ms | 19808 KiB |
| colored_02.txt | AC | 81 ms | 20052 KiB |
| colored_03.txt | AC | 73 ms | 20368 KiB |
| colored_04.txt | AC | 66 ms | 21072 KiB |
| colored_05.txt | AC | 92 ms | 22128 KiB |
| colored_06.txt | AC | 59 ms | 17860 KiB |
| colored_07.txt | AC | 56 ms | 19448 KiB |
| colored_08.txt | AC | 80 ms | 20596 KiB |
| colored_09.txt | AC | 61 ms | 18220 KiB |
| colored_10.txt | AC | 53 ms | 18856 KiB |
| colored_11.txt | AC | 74 ms | 20052 KiB |
| colored_12.txt | AC | 53 ms | 17108 KiB |
| colored_13.txt | AC | 52 ms | 18656 KiB |
| colored_14.txt | AC | 88 ms | 20856 KiB |
| colored_15.txt | AC | 53 ms | 17112 KiB |
| colored_16.txt | AC | 63 ms | 19256 KiB |
| colored_17.txt | AC | 83 ms | 20280 KiB |
| colored_18.txt | AC | 59 ms | 17688 KiB |
| colored_19.txt | AC | 74 ms | 19580 KiB |
| colored_20.txt | AC | 95 ms | 24064 KiB |
| colored_21.txt | AC | 59 ms | 17956 KiB |
| colored_22.txt | AC | 81 ms | 21032 KiB |
| colored_23.txt | AC | 80 ms | 21600 KiB |
| colored_24.txt | AC | 75 ms | 18464 KiB |
| colored_25.txt | AC | 97 ms | 25072 KiB |
| example_00.txt | AC | 7 ms | 3584 KiB |
| example_01.txt | AC | 2 ms | 3604 KiB |
| hand_00.txt | AC | 82 ms | 28200 KiB |
| hand_01.txt | AC | 31 ms | 12624 KiB |
| hand_02.txt | AC | 45 ms | 18652 KiB |
| hand_03.txt | AC | 48 ms | 18748 KiB |
| hand_04.txt | AC | 88 ms | 27496 KiB |
| hand_05.txt | AC | 42 ms | 18696 KiB |
| hand_06.txt | AC | 49 ms | 18728 KiB |
| hand_07.txt | AC | 45 ms | 18784 KiB |
| random_00.txt | AC | 82 ms | 21552 KiB |
| random_01.txt | AC | 92 ms | 22708 KiB |
| random_02.txt | AC | 7 ms | 3496 KiB |
| random_03.txt | AC | 96 ms | 22080 KiB |
| random_04.txt | AC | 89 ms | 21288 KiB |
| random_05.txt | AC | 5 ms | 3596 KiB |
| random_06.txt | AC | 93 ms | 20824 KiB |
| random_07.txt | AC | 95 ms | 20864 KiB |
| random_08.txt | AC | 6 ms | 3516 KiB |
| random_09.txt | AC | 66 ms | 18428 KiB |
| random_10.txt | AC | 77 ms | 18748 KiB |
| random_11.txt | AC | 7 ms | 3560 KiB |
| random_12.txt | AC | 51 ms | 16584 KiB |
| random_13.txt | AC | 49 ms | 16112 KiB |