Submission #72575089


Source Code Expand

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <utility>
#include <tuple>
#include <cstdint>
#include <cstdio>
#include <map>
#include <cstdint>
#include <queue>
#include <set>
#include <stack>
#include <deque>
#include <unordered_map>
#include <unordered_set>
#include <bitset>
#include <cctype>
#include <functional>
#include <ctime>
#include <fstream>
#include <cmath>
#include <limits>
#include <chrono>
#include <numeric>
#include <type_traits>
#include <iomanip>
#include <float.h>
#include <math.h>
#include <cassert>
#include <random>
#include <bit>
#include <cstdint>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
#define rep(i, l, r) for (ll i = (l); i < (r); ++i)
#define all(x) (x).begin(), (x).end()
using ll = long long;
using pl = pair<ll,ll>;
using vl = vector<ll>;
using vvl = vector<vector<ll>>;
#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
using mint=modint998244353;


int main(){
    vector<int> a={0,0,1,-1};
    vector<int> b={1,-1,0,0};
    ll h,w;
    cin>>h>>w;
    vector<string> z(h);
    rep(i,0,h){
        cin>>z[i];
    }
    vector<vector<ll>> d(h,vl(w,10000000000));
    queue<pair<ll,ll>> q;
    q.push(make_pair(0,0));
    d[0][0]=0;
    while(!q.empty()){
        pair<ll,ll> f=q.front();
        ll now=d[f.first][f.second]+1;
        rep(i,0,4){
            if(f.first+a[i]>=0&&f.first+a[i]<h&&f.second+b[i]>=0&&f.second+b[i]<w&&d[f.first+a[i]][f.second+b[i]]>now&&z[f.first+a[i]][f.second+b[i]]!=z[f.first][f.second]){
                q.push(make_pair(f.first+a[i],f.second+b[i]));
                d[f.first+a[i]][f.second+b[i]]=now;
            }
        }
        q.pop();
    }
    if(d[h-1][w-1]==10000000000)cout<<-1<<endl;
    else cout<<d[h-1][w-1]<<endl;
    return 0;
}

Submission Info

Submission Time
Task F - EGFパス
User guild2026_056
Language C++23 (GCC 15.2.0)
Score 100
Code Size 1903 Byte
Status AC
Exec Time 45 ms
Memory 13480 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 25
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_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 3584 KiB
00_sample_01.txt AC 1 ms 3632 KiB
00_sample_02.txt AC 1 ms 3588 KiB
01_random_00.txt AC 45 ms 13464 KiB
01_random_01.txt AC 33 ms 10764 KiB
01_random_02.txt AC 4 ms 4260 KiB
01_random_03.txt AC 13 ms 6380 KiB
01_random_04.txt AC 45 ms 13444 KiB
01_random_05.txt AC 44 ms 13348 KiB
01_random_06.txt AC 44 ms 13432 KiB
01_random_07.txt AC 15 ms 13268 KiB
01_random_08.txt AC 43 ms 13248 KiB
01_random_09.txt AC 15 ms 13080 KiB
01_random_10.txt AC 33 ms 13124 KiB
01_random_11.txt AC 28 ms 13140 KiB
01_random_12.txt AC 45 ms 13480 KiB
01_random_13.txt AC 45 ms 13428 KiB
01_random_14.txt AC 5 ms 4656 KiB
01_random_15.txt AC 21 ms 8148 KiB
01_random_16.txt AC 38 ms 12032 KiB
01_random_17.txt AC 33 ms 10660 KiB
01_random_18.txt AC 2 ms 3700 KiB
01_random_19.txt AC 45 ms 13440 KiB
01_random_20.txt AC 27 ms 9536 KiB
01_random_21.txt AC 8 ms 4996 KiB