提出 #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;}

提出情報

提出日時
問題 D - Medicines on Grid
ユーザ abhishekverma78
言語 C++ 20 (gcc 12.2)
得点 425
コード長 2923 Byte
結果 AC
実行時間 993 ms
メモリ 10260 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 425 / 425
結果
AC × 3
AC × 53
セット名 テストケース
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