提出 #52107617
ソースコード 拡げる
#include<iostream>
#include<bits/stdc++.h>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/assoc_container.hpp>
typedef long long LL;
typedef unsigned long long ULL;
using namespace std;
using namespace __gnu_pbds;
typedef vector<int> vi;
typedef vector<vi> vii;
typedef vector<tuple<int,int,int>> vti3;
int mod1=(1e9+7);
ULL mod2=(1152921504606846976);
#define FOR(i,a,b) for(long i=a;i<b;i++)
#define pb push_back
#define ll long long
#define pob pop_back
#define fi first
#define si second
#define mdeb(x) cout << #x<<' '<< x <<"\n";
#define mdeb2(x,y) cout<< #x<<' '<<x<<' '<< #y<<' '<<y<<"\n";
#define mdeb3(x,y,z) cout<< #x<<' '<<x<<' '<< #y<<' '<<y<<' '<< #z<<' '<<z<<"\n";
#define ordered_set tree<ll, null_type,less<ll>, rb_tree_tag,tree_order_statistics_node_update>
#define less(x) order_of_key(x)
#define element(x) find_by_order(x)
#define mii map<int,int>
#define mp make_pair
#define msi map<string,int>
#define musi unorderd_map<string,int>
#define test_n LL N; cin>>N; while(N--)
#define pii pair<int,int>
#define fastio ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define all(x) x.begin(),x.end()
void printans(int f){
if(f){cout<<"YES\n";}else{ cout<<"NO\n";}
}
int r,c;
int sr,sc,tr,tc;
int itr=0;
vector<vector<int>> mval,energy,visi;
vector<string> mat;
void dfs(int x,int y){
visi[x][y]=1;
// mdeb3(x,y,mval[x][y]);
if(mval[x][y]){
if(x){
if(mat[x-1][y]!='#'){ mval[x-1][y]=max(mval[x-1][y],max(energy[x-1][y],mval[x][y]-1)); if(!visi[x-1][y]){ dfs(x-1,y); } }
}
if(x+1<r){
if(mat[x+1][y]!='#'){ mval[x+1][y]=max(mval[x+1][y], max(energy[x+1][y], mval[x][y]-1 ) ); if(!visi[x+1][y]){ dfs(x+1,y); } }
}
if(y){
if(mat[x][y-1]!='#'){ mval[x][y-1]=max(mval[x][y-1], max(energy[x][y-1], mval[x][y]-1 ) ); if(!visi[x][y-1]){ dfs(x,y-1); } }
}
if(y+1<c){
if(mat[x][y+1]!='#'){ mval[x][y+1]=max(mval[x][y+1],max(energy[x][y+1], mval[x][y]-1 ) ); if(!visi[x][y+1]){ dfs(x,y+1); } }
}
}
}
int main(){
fastio;
cin>>r>>c;
mat=vector<string>(r);
FOR(i,0,r){
cin>>mat[i];
}
FOR(i,0,r){
FOR(j,0,c){
if(mat[i][j]=='S'){ sr=i,sc=j; }else if(mat[i][j]=='T'){ tr=i,tc=j; }
}
}
mval= vector<vector<int>>(r,vector<int>(c,-1e9));
energy=vector<vector<int>>(r,vector<int>(c,-1));
int n; cin>>n;
FOR(i,0,n){
int x,y,e; cin>>x>>y>>e; x--; y--; energy[x][y]=e;
}
if(energy[sr][sc]<1){ cout<<"No\n"; return 0;}
mval[sr][sc]=energy[sr][sc];
//mdeb3(sr,sc,mval[sr][sc]);
FOR(i,0,1000){
itr++;
// mdeb2(itr,"-------------")
visi=vector<vector<int>>(r,vector<int>(c,0));
dfs(sr,sc);
}
//mdeb3(tr,tc,mval[tr][tc]);
if(mval[tr][tc]>=0){
cout<<"Yes\n";
}else{
cout<<"No\n";
}
return 0;}
提出情報
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
425 / 425 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
example0.txt, example1.txt, example2.txt |
| All |
example0.txt, example1.txt, example2.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| example0.txt |
AC |
1 ms |
3392 KiB |
| example1.txt |
AC |
1 ms |
3452 KiB |
| example2.txt |
AC |
1 ms |
3468 KiB |
| test_00.txt |
AC |
248 ms |
5140 KiB |
| test_01.txt |
AC |
37 ms |
4188 KiB |
| test_02.txt |
AC |
12 ms |
3900 KiB |
| test_03.txt |
AC |
252 ms |
5320 KiB |
| test_04.txt |
AC |
253 ms |
5620 KiB |
| test_05.txt |
AC |
44 ms |
4112 KiB |
| test_06.txt |
AC |
114 ms |
4348 KiB |
| test_07.txt |
AC |
252 ms |
5520 KiB |
| test_08.txt |
AC |
243 ms |
4796 KiB |
| test_09.txt |
AC |
15 ms |
3908 KiB |
| test_10.txt |
AC |
254 ms |
5676 KiB |
| test_11.txt |
AC |
993 ms |
10260 KiB |
| test_12.txt |
AC |
476 ms |
4088 KiB |
| test_13.txt |
AC |
471 ms |
4060 KiB |
| test_14.txt |
AC |
14 ms |
3972 KiB |
| test_15.txt |
AC |
475 ms |
4060 KiB |
| test_16.txt |
AC |
476 ms |
3988 KiB |
| test_17.txt |
AC |
471 ms |
4036 KiB |
| test_18.txt |
AC |
453 ms |
4080 KiB |
| test_19.txt |
AC |
472 ms |
3972 KiB |
| test_20.txt |
AC |
476 ms |
3976 KiB |
| test_21.txt |
AC |
472 ms |
4040 KiB |
| test_22.txt |
AC |
724 ms |
5156 KiB |
| test_23.txt |
AC |
782 ms |
5564 KiB |
| test_24.txt |
AC |
179 ms |
4032 KiB |
| test_25.txt |
AC |
823 ms |
7300 KiB |
| test_26.txt |
AC |
670 ms |
4668 KiB |
| test_27.txt |
AC |
820 ms |
7256 KiB |
| test_28.txt |
AC |
543 ms |
4180 KiB |
| test_29.txt |
AC |
810 ms |
6748 KiB |
| test_30.txt |
AC |
765 ms |
5444 KiB |
| test_31.txt |
AC |
725 ms |
5192 KiB |
| test_32.txt |
AC |
1 ms |
3800 KiB |
| test_33.txt |
AC |
1 ms |
3796 KiB |
| test_34.txt |
AC |
1 ms |
3796 KiB |
| test_35.txt |
AC |
1 ms |
3828 KiB |
| test_36.txt |
AC |
1 ms |
3796 KiB |
| test_37.txt |
AC |
646 ms |
8104 KiB |
| test_38.txt |
AC |
474 ms |
7060 KiB |
| test_39.txt |
AC |
651 ms |
8128 KiB |
| test_40.txt |
AC |
482 ms |
7060 KiB |
| test_41.txt |
AC |
644 ms |
8032 KiB |
| test_42.txt |
AC |
481 ms |
7088 KiB |
| test_43.txt |
AC |
653 ms |
8192 KiB |
| test_44.txt |
AC |
475 ms |
7040 KiB |
| test_45.txt |
AC |
647 ms |
8228 KiB |
| test_46.txt |
AC |
491 ms |
7032 KiB |
| test_47.txt |
AC |
650 ms |
8056 KiB |
| test_48.txt |
AC |
484 ms |
7248 KiB |
| test_49.txt |
AC |
1 ms |
3384 KiB |