Submission #36245749
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
typedef long long int lli;
typedef pair<int, int> pii;
typedef map<int, int> mii;
typedef map<string, int> msi;
typedef map<string, string> mss;
typedef vector<int> vi;
typedef vector<long long int> vlli;
typedef vector<bool> vb;
typedef vector<string> vs;
typedef vector<pair<int, int>> vpii;
typedef vector<vector<int>> vvi;
typedef vector<vector<long long int>> vvlli;
typedef vector<vector<bool>> vvb;
#define endl "\n"
#define line cout<<"\n"
#define pb push_back
#define all(v) v.begin(),v.end()
#define mod7 1000000007
#define mod9 1000000009
#define modd 998244353
#define out0(x) cout<<(x)<<" "
#define out1(x) cout<<(x)<<endl
#define out2(x,y) cout<<(x)<<" "<<(y)<<endl
#define trace1(x) if(dm) cout<<(#x)<<" "<<(x)<<endl
#define trace2(x,y) if(dm) cout<<(#x)<<" "<<(x)<<", "<<(#y)<<" "<<(y)<<endl
#define trace3(x,y,z) if(dm) cout<<(#x)<<" "<<(x)<<", "<<(#y)<<" "<<(y)<<", "<<(#z)<<" "<<(z)<<endl
#define in1(x) cin>>(x)
#define in2(x,y) cin>>(x)>>(y)
#define in3(x,y,z) cin>>(x)>>(y)>>(z)
#define in4(x,y,z,w) cin>>(x)>>(y)>>(z)>>(w)
#define ins(x) string x;cin>>x
#define ini(x) int x;cin>>x
#define inii(x,y) int x,y;cin>>x>>y
#define inlli(x) long long int x;cin>>x
#define invi(v,n) vector<int>v(n);for(int i=0;i<n;i++)cin>>v[i]
#define invs(v,n) vector<string>v(n);for(int i=0;i<n;i++)cin>>v[i]
#define invlli(v,n) vector<long long int>v(n);for(int i=0;i<n;i++)cin>>v[i]
#define rep(i,st,end) for(int i=st; i<=end; i++)
#define rrep(i,st,end) for(int i=st; i>=end; i--)
template<typename T>
vector<T> inpv(int sz){
vector<T> res(sz);
for(T& i : res) cin>> i;
return res;
}
template <typename T> void outv (const vector<T> &vec) {
for(int i=0; i<vec.size(); i++) cout << vec[i] << " " ;
cout << endl ;
}
template <typename T> inline lli sumv (const vector<T> &vec) {
lli res=0;
for(int i=0; i<vec.size(); i++) res +=vec[i] ;
return res;
}
template <typename T> inline int maxindv (const vector<T> &vec) {
return max_element(vec.begin(), vec.end()) - vec.begin();
}
template <typename T> inline int minindv (const vector<T> &vec) {
return min_element(vec.begin(), vec.end()) - vec.begin();
}
template <typename T> inline void sortv (vector<T> &vec) { sort(vec.begin(), vec.end() ) ; }
template <typename T> inline void rsortv (vector<T> &vec) { sort(vec.begin(), vec.end(), greater<T>()) ; }
template<class T>
vector<lli> get_presum(const vector<T>& vec){
vector<lli> presum(vec.size()+1,0);
for(int i=1; i<=vec.size(); i++) presum[i] = presum[i-1] + vec[i-1] ;
return presum;
}
template<class T>
map<T, int> get_freq(const vector<T>& vec){
map<T, int> freq;
for(T i : vec) freq[i]++;
return freq;
}
const vector<pair<int, int>> diff4 = {{-1, 0}, {1,0}, {0,1}, {0,-1}};
const vector<pair<int, int>> diff8 = {{-1, 0}, {1,0}, {0,1}, {0,-1}, {-1, 1}, {1,1}, {1,-1}, {-1,-1}};
bool grid_val_check(int i, int j, int m, int n){ return i>=0 && j>=0 && i<m && j<n ; }
int dm = 0;
void fastio(){ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);}
void fileio() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
#endif
}
void solve(){
inii(n,m);
vs grid(n);
int si,sj;
for(int i=0; i<n; i++){
cin>>grid[i];
for(int j=0; j<m; j++){
if(grid[i][j] == 'S'){
si = i;
sj = j;
}
}
}
vvi color(n, vi(m, -1));
auto check = [&](int i, int j){
return i>=0 && j>=0 && i<n && j<m;
};
queue<pii> bfs;
color[si][sj] = 0;
for(int dir = 1; dir<=4; dir++){
int x = si + diff4[dir-1].first;
int y = sj + diff4[dir-1].second;
if(check(x,y) && grid[x][y]!='#'){
color[x][y] = dir;
bfs.push({x,y});
}
}
string ans = "No";
while(!bfs.empty()){
int x = bfs.front().first;
int y = bfs.front().second;
bfs.pop();
for(pii dir : diff4){
int i = x + dir.first;
int j = y + dir.second;
if(check(i,j) && grid[i][j] == '.'){
if(color[i][j] == -1){
color[i][j] = color[x][y];
bfs.push({i,j});
}
else if(color[i][j] != color[x][y]){
ans = "Yes";
}
}
}
}
cout << ans << endl;
}
int main(){
#ifndef ONLINE_JUDGE
dm = 1;
clock_t clock_begin = clock();
#endif
if(!dm)fastio();
fileio();
lli tst=1;
//cin>>tst ;
for(int t=1; t<=tst; t++){
solve();
}
#ifndef ONLINE_JUDGE
clock_t clock_end = clock();
//cout<<"Executed In : "<<double(clock_end-clock_begin)/CLOCKS_PER_SEC*1000<<" ms";
#endif
return 0 ;
}
Submission Info
Submission Time
2022-11-05 21:45:20+0900
Task
E - Round Trip
User
nk12384
Language
C++ (GCC 9.2.1)
Score
500
Code Size
5154 Byte
Status
AC
Exec Time
43 ms
Memory
10224 KiB
Compile Error
./Main.cpp: In function ‘void solve()’:
./Main.cpp:124:20: warning: ‘sj’ may be used uninitialized in this function [-Wmaybe-uninitialized]
124 | int y = sj + diff4[dir-1].second;
| ~~~^~~~~~~~~~~~~~~~~~~~~
./Main.cpp:123:20: warning: ‘si’ may be used uninitialized in this function [-Wmaybe-uninitialized]
123 | int x = si + diff4[dir-1].first;
| ~~~^~~~~~~~~~~~~~~~~~~~
Judge Result
Set Name
Sample
All
Score / Max Score
0 / 0
500 / 500
Status
Set Name
Test Cases
Sample
example_00.txt, example_01.txt, example_02.txt
All
example_00.txt, example_01.txt, example_02.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
Case Name
Status
Exec Time
Memory
example_00.txt
AC
5 ms
3608 KiB
example_01.txt
AC
2 ms
3468 KiB
example_02.txt
AC
1 ms
3588 KiB
test_00.txt
AC
9 ms
8784 KiB
test_01.txt
AC
8 ms
8084 KiB
test_02.txt
AC
13 ms
8484 KiB
test_03.txt
AC
9 ms
8076 KiB
test_04.txt
AC
11 ms
8792 KiB
test_05.txt
AC
7 ms
8168 KiB
test_06.txt
AC
8 ms
8040 KiB
test_07.txt
AC
11 ms
8864 KiB
test_08.txt
AC
2 ms
3540 KiB
test_09.txt
AC
2 ms
3480 KiB
test_10.txt
AC
2 ms
3592 KiB
test_11.txt
AC
43 ms
10224 KiB
test_12.txt
AC
23 ms
8352 KiB
test_13.txt
AC
20 ms
8640 KiB
test_14.txt
AC
11 ms
6556 KiB
test_15.txt
AC
7 ms
5140 KiB
test_16.txt
AC
7 ms
5752 KiB
test_17.txt
AC
10 ms
7092 KiB
test_18.txt
AC
11 ms
5744 KiB
test_19.txt
AC
7 ms
5248 KiB
test_20.txt
AC
9 ms
6320 KiB
test_21.txt
AC
9 ms
6984 KiB