Submission #1065017

#TimeUsernameProblemLanguageResultExecution timeMemory
1065017Dennis_JasonMaze (JOI23_ho_t3)C++14
8 / 100
91 ms15184 KiB
#include <bitset> #include <cmath> #include <functional> #include <algorithm> #include <numeric> #include <deque> #include <fstream> #include <iomanip> #include <iostream> #include <iterator> #include <limits> #include <list> #include <map> #include <unordered_map> #include <queue> #include <set> #include <stack> #include <string> #include <vector> #include <cstring> #include <climits> #define pb push_back #define MOD 1000000007 #define NMAX 6000001 #define nl '\n' #define INF 1000000007 #define pii1 pair<int, pair<int,int>> (1,(1,2)); #define pii pair<int,int> #define tpl tuple<int,int,int> using namespace std; ifstream fin("data.in"); ofstream fout("data.out"); /* ====================DEMONSTRATION====================== n=2 1....#####..## ....########## ####.......... ##########.... ##########.... 1....####....# =========================END=========================== */ int r,c,n; int x,y,a,b,node_s,node_f; int di[]={1,-1,0,0}; int dj[]={0,0,1,-1}; bool inmat(int i,int j) { return i>=1 && i<=r && j>=1 && j<=c; } const int R=x,L=y; void bfs(int** mat) { deque<tpl>dq; bool vis[r+1][c+1]; memset(vis,0,sizeof(vis)); vis[x][y]=1; int ans=INF; dq.push_front({x,y,0}); while(!dq.empty()) { auto[i,j,cost]=dq.front(); dq.pop_front(); if(i==a && j==b) ans=min(ans,cost); for(int d=0;d<4;++d) { int inou=di[d]+i; int jnou=dj[d]+j; if(inmat(inou,jnou) && !vis[inou][jnou]) { if(mat[inou][jnou]==0) { dq.push_front({inou,jnou,cost}); } else { dq.push_back({inou,jnou,cost+1}); } vis[inou][jnou]=1; } } } cout<<ans; } signed main() { cin>>r>>c>>n; int **mat= new int*[r+1]; for(int i=1;i<=r;++i) mat[i]=new int[c+1]; cin>>x>>y; cin>>a>>b; for(int i=1;i<=r;++i) { for(int j=1;j<=c;++j) { char x; cin>>x; if(x=='.') mat[i][j]=0; else mat[i][j]=1; } } bfs(mat); return 0; }

Compilation message (stderr)

Main.cpp: In function 'void bfs(int**)':
Main.cpp:65:13: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   65 |         auto[i,j,cost]=dq.front();
      |             ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...