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 |
|
|
| 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 |