提出 #73589106
ソースコード 拡げる
#ifndef ONLINE_JUDGE
#define _GLIBCXX_DEBUG
#endif
#include <bits/stdc++.h>
using namespace std;
#include <ranges>
using ll=long long;
using ull=unsigned long long;
using ld=long double;
using pint=pair<int,int>;
using pill=pair<int,ll>;
using pll=pair<ll,ll>;
using plli=pair<ll,int>;
template<typename T1,typename T2> using unmap=unordered_map<T1,T2>;
template<typename T> using unset=unordered_set<T>;
template<typename T> using p_q=priority_queue<T>;
template<typename T> using rp_q=priority_queue<T,vector<T>,greater<T>>;
#define rep(i,j,n) for(int i=(int)(j);i<(int)(n);i++)
#define per(i,j,n) for(int i=(int)(j);i>=(int)(n);i--)
#define rev(a) reverse(a)
#define all(a) (a).begin(),(a).end()
#define rall(a) (a).rbegin(),(a).rend()
#define yes cout<<"Yes\n"
#define no cout<<"No\n"
#define dame cout<<"-1\n"
#define ENDL cout<<'\n'
#define ep emplace
#define eb emplace_back
#define pob pop_back
#define ef emplace_front
#define pof pop_front
#define fi first
#define se second
const int iinf=2147483647/2;
const ll linf=9223372036854775807/2;
const ld pai=acosl(-1);
const array<int,8> di={1,0,-1,0,-1,1,-1,1};
const array<int,8> dj={0,1,0,-1,-1,1,1,-1};
template<typename T1,typename T2> istream& operator>>(istream &i,pair<T1,T2> &x){
i>>x.fi>>x.se;
return i;
}
template<typename T1,typename T2> ostream& operator<<(ostream &o,const pair<T1,T2> &x){
return o<<x.fi<<' '<<x.se;
}
void lines(int n=10){
while(n--) cout<<'-';
cout<<'\n';
}
template<typename T> void vin(T &v,int n=0){
if(n==0) n=v.size();
rep(i,0,n) cin>>v[i];
}
template<typename T> void vout(const T &v,string s=" "){
int n=v.size();
rep(i,0,n) cout<<v[i]<<(i+1<n ? s:"\n");
}
template<typename T> void vvout(const T &vv,string s=" "){
int n=vv.size();
rep(i,0,n) vout(vv[i],s);
}
template<typename T> bool chmax(T &a,const T &b){
if(a<b){
a=b;
return true;
}
return false;
}
template<typename T> bool chmin(T &a,const T &b){
if(a>b){
a=b;
return true;
}
return false;
}
template<typename T> bool outgrid(const T &i,const T &j,const T &h,const T &w=-1){
return (i<0 or i>=h or j<0 or j>=(w==-1 ? h:w));
}
//printf("%.20Lf\n",ans);
////////////////////////////////////////////////////////////////////////////////
int solve(){
int n,m;
cin>>n>>m;
vector<string> s(n);
vin(s);
deque<pint> dq;
dq.eb(0,0);
vector<vector<int>> cnt(n,vector<int>(m,iinf));
cnt[0][0]=0;
while(!dq.empty()){
auto [i,j]=dq.front();
dq.pof();
rep(k,0,4){
int ni=i+di[k],nj=j+dj[k];
if(outgrid(ni,nj,n,m)) continue;
if(s[ni][nj]=='#' and chmin(cnt[ni][nj],cnt[i][j]+1)) dq.eb(ni,nj);
if(s[ni][nj]=='.' and chmin(cnt[ni][nj],cnt[i][j])) dq.ef(ni,nj);
}
}
cout<<cnt[n-1][m-1]<<'\n';
return 0;
}
int main(){
int t=1;
//cin>>t;
while(t--) solve();
return 0;
}
提出情報
| 提出日時 |
|
| 問題 |
D - 迷路からの脱出 |
| ユーザ |
Show_541 |
| 言語 |
C++23 (GCC 15.2.0) |
| 得点 |
400 |
| コード長 |
3114 Byte |
| 結果 |
AC |
| 実行時間 |
13 ms |
| メモリ |
6212 KiB |
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
400 / 400 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
sample01.txt, sample02.txt, sample03.txt, sample04.txt, sample05.txt, sample06.txt, sample07.txt, sample08.txt, sample09.txt, sample10.txt |
| All |
sample01.txt, sample02.txt, sample03.txt, sample04.txt, sample05.txt, sample06.txt, sample07.txt, sample08.txt, sample09.txt, sample10.txt, in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in40.txt, in41.txt, in42.txt, in43.txt, in44.txt, in45.txt, in46.txt, in47.txt, in48.txt, in49.txt, in50.txt, in51.txt, in52.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| in01.txt |
AC |
1 ms |
3592 KiB |
| in02.txt |
AC |
1 ms |
3428 KiB |
| in03.txt |
AC |
1 ms |
3456 KiB |
| in04.txt |
AC |
1 ms |
3640 KiB |
| in05.txt |
AC |
1 ms |
3720 KiB |
| in06.txt |
AC |
6 ms |
6016 KiB |
| in07.txt |
AC |
7 ms |
4988 KiB |
| in08.txt |
AC |
7 ms |
5084 KiB |
| in09.txt |
AC |
6 ms |
5464 KiB |
| in10.txt |
AC |
13 ms |
4988 KiB |
| in11.txt |
AC |
11 ms |
5632 KiB |
| in12.txt |
AC |
12 ms |
5188 KiB |
| in13.txt |
AC |
7 ms |
6140 KiB |
| in14.txt |
AC |
8 ms |
5144 KiB |
| in15.txt |
AC |
1 ms |
3516 KiB |
| in16.txt |
AC |
1 ms |
3584 KiB |
| in17.txt |
AC |
6 ms |
5128 KiB |
| in18.txt |
AC |
13 ms |
5036 KiB |
| in19.txt |
AC |
7 ms |
5104 KiB |
| in20.txt |
AC |
7 ms |
6152 KiB |
| in21.txt |
AC |
7 ms |
5188 KiB |
| in22.txt |
AC |
13 ms |
5176 KiB |
| in23.txt |
AC |
9 ms |
5088 KiB |
| in24.txt |
AC |
6 ms |
5852 KiB |
| in25.txt |
AC |
3 ms |
4632 KiB |
| in26.txt |
AC |
1 ms |
3592 KiB |
| in27.txt |
AC |
1 ms |
3640 KiB |
| in28.txt |
AC |
7 ms |
5136 KiB |
| in29.txt |
AC |
1 ms |
3696 KiB |
| in30.txt |
AC |
1 ms |
3580 KiB |
| in31.txt |
AC |
7 ms |
5144 KiB |
| in32.txt |
AC |
7 ms |
6212 KiB |
| in33.txt |
AC |
1 ms |
3592 KiB |
| in34.txt |
AC |
9 ms |
5084 KiB |
| in35.txt |
AC |
7 ms |
6012 KiB |
| in36.txt |
AC |
12 ms |
5628 KiB |
| in37.txt |
AC |
9 ms |
5036 KiB |
| in38.txt |
AC |
1 ms |
3592 KiB |
| in39.txt |
AC |
1 ms |
3580 KiB |
| in40.txt |
AC |
8 ms |
4992 KiB |
| in41.txt |
AC |
13 ms |
5188 KiB |
| in42.txt |
AC |
6 ms |
4392 KiB |
| in43.txt |
AC |
13 ms |
5088 KiB |
| in44.txt |
AC |
11 ms |
5036 KiB |
| in45.txt |
AC |
12 ms |
4988 KiB |
| in46.txt |
AC |
9 ms |
5052 KiB |
| in47.txt |
AC |
1 ms |
3580 KiB |
| in48.txt |
AC |
1 ms |
3560 KiB |
| in49.txt |
AC |
7 ms |
5084 KiB |
| in50.txt |
AC |
7 ms |
5128 KiB |
| in51.txt |
AC |
7 ms |
5104 KiB |
| in52.txt |
AC |
7 ms |
5072 KiB |
| sample01.txt |
AC |
1 ms |
3580 KiB |
| sample02.txt |
AC |
1 ms |
3640 KiB |
| sample03.txt |
AC |
1 ms |
3504 KiB |
| sample04.txt |
AC |
1 ms |
3616 KiB |
| sample05.txt |
AC |
1 ms |
3592 KiB |
| sample06.txt |
AC |
1 ms |
3504 KiB |
| sample07.txt |
AC |
1 ms |
3380 KiB |
| sample08.txt |
AC |
1 ms |
3596 KiB |
| sample09.txt |
AC |
1 ms |
3496 KiB |
| sample10.txt |
AC |
1 ms |
3528 KiB |