35C - Fire Again - CodeForces Solution


brute force dfs and similar shortest paths *1500

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
using namespace std;
const int N=3000;
int n,m,k,mxlvl=-1;
pair<int,int>nodee;
int dx[4] {0,-1,0,1};
int dy[4] {-1,0,1,0};
vector<int>adj[N];
int ans[N][N];
vector<pair<int,int>>pushat;
bool is_vlaid(int i,int j){
    return i >= 1 && i <= n && j >= 1 && j <= m && ans[i][j] == -1;
}
void bfs(){
    queue<pair<int,int>>q;
    for(auto node:pushat)
        ans[node.first][node.second]=0,q.push(node),nodee=node;
    for (int i = 0; q.size(); ++i) {
        int sz=q.size();
        while (sz--){
            for(int j=0;j<4;j++){
                pair<int,int>qso=q.front();
                qso.first+=dx[j],qso.second+=dy[j];
                if(is_vlaid(qso.first,qso.second)){
                    nodee=qso;
//                    nodee.first+=1,nodee.second;
                    ans[qso.first][qso.second]=i+1;
                    q.push(qso);
                }
            }
            q.pop();
        }
    }
}
int main() {
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    cin>>n>>m>>k;
    pushat.resize(k);
    for (int i = 0; i < k; ++i) {
        int u,v;cin>>u>>v;
        pushat.push_back({u,v});
    }
    ::memset(ans,-1, sizeof ans);
    bfs();
    cout<<nodee.first<<' '<<nodee.second;
    return 0;
}


Comments

Submit
0 Comments
More Questions

1002. Find Common Characters
1602A - Two Subsequences
1555A - PizzaForces
1607B - Odd Grasshopper
1084A - The Fair Nut and Elevator
1440B - Sum of Medians
1032A - Kitchen Utensils
1501B - Napoleon Cake
1584B - Coloring Rectangles
1562B - Scenes From a Memory
1521A - Nastia and Nearly Good Numbers
208. Implement Trie
1605B - Reverse Sort
1607C - Minimum Extraction
1604B - XOR Specia-LIS-t
1606B - Update Files
1598B - Groups
1602B - Divine Array
1594B - Special Numbers
1614A - Divan and a Store
2085. Count Common Words With One Occurrence
2089. Find Target Indices After Sorting Array
2090. K Radius Subarray Averages
2091. Removing Minimum and Maximum From Array
6. Zigzag Conversion
1612B - Special Permutation
1481. Least Number of Unique Integers after K Removals
1035. Uncrossed Lines
328. Odd Even Linked List
1219. Path with Maximum Gold