CF_516_B

Run Settings
LanguageC++
Language Version
Run Command
#include "bits/stdc++.h" #define graph vector<vector<char>> using ll = long long ; using namespace std ; vector<pair<int,int>> moves = {{0,1},{0,-1},{1,0},{-1,0}} ; bool valid(int i , int j , int n ,int m ){ if (i < 1 || j < 1 || i > n || j> m)return false ; return true ; } int bfs(int sx , int sy , graph g ,int x ,int y ,int n , int m ){ queue<vector<int>> q ; q.push({sx ,sy , 0, 0 }) ; g[sx][sy] = '*' ; int retVal = 0 ; while(!q.empty()){ vector<int> P = q.front() ; q.pop() ; retVal++ ; for(auto &move : moves){ int cx = move.first + P[0] , cy = move.second + P[1] ; if(valid(cx , cy , n , m) && g[cx][cy] !='*'){ vector<int> temp{cx,cy, P[2] , P[3]} ; if(abs(move.second)){ if(move.second > 0 )temp[3]++ ; else temp[2]++ ; } if(temp[2] <=x && temp[3] <= y) { q.push(temp) ; g[cx][cy] = '*' ; } } } } return retVal ; } int main (){ ll n , m ; cin >> n >> m ; ll sx , sy ; cin >> sx >> sy ; ll x ,y ; cin >> x >> y ; graph g(n+1 , vector(m+1 , '.')) ; for(int i = 1 ; i <=n ; i++ ){ for(int j = 1 ; j <=m ; j++ ){ cin>> g[i][j] ; } } cout << bfs(sx,sy,g,x,y,n,m) <<"\n" ; return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines