Submission #1139784

#TimeUsernameProblemLanguageResultExecution timeMemory
1139784demongod_cfTracks in the Snow (BOI13_tracks)C++20
0 / 100
19 ms840 KiB
#include <vector> #include <string> #include <queue> #include <cmath> #include <algorithm> #include <iostream> #include <bit> #include <bitset> using namespace std; #define loop(i,x) for(int i=0;i<x;i++) #define loop2(i,x,n) for(int i=x;i<n;i++) char grid[501][501]; bool visited[501][501]; int dx[]={0,0,1,-1}; int dy[]={-1,1,0,0}; int main(){ int h,w; cin>>h>>w; loop(i,h){ loop(j,w){ grid[i][j]='.'; } } loop(i,h){ loop(j,w){ cin>>grid[i][j]; } } deque<pair<int,int>> q; int m=0; q.push_back({0,0}); while (q.size()){ auto c=q.front(); q.pop_front(); visited[c.first][c.second]=true; loop(i,4){ if(0<=c.first+dy[i] && c.first+dy[i]<h && 0<c.second+dx[i] && c.second+dx[i]<w && !visited[c.first+dy[i]][c.second+dx[i]] && grid[c.first+dy[i]][c.second+dx[i]]!=grid[c.first][c.second] && grid[c.first+dy[i]][c.second+dx[i]]!='.'){ q.push_back({c.first+dx[i],c.second+dy[i]}); m++; } else if(0<=c.first+dy[i] && c.first+dy[i]<h && 0<c.second+dx[i] && c.second+dx[i]<w && !visited[c.first+dy[i]][c.second+dx[i]] && grid[c.first+dy[i]][c.second+dx[i]]==grid[c.first][c.second]&& grid[c.first+dy[i]][c.second+dx[i]]!='.'){ q.push_front({c.first+dx[i],c.second+dy[i]}); } } } cout<<m<<'\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...