Submission #880341

#TimeUsernameProblemLanguageResultExecution timeMemory
880341themaver1cksTracks in the Snow (BOI13_tracks)C++11
100 / 100
734 ms223240 KiB
/** 。∠(*・ω・)っ ⌒ 由 ~ (( ,,・з・,, )) _Π_____。 /______/~\ | 田田|門| **/ #include <bits/stdc++.h> using namespace std; #define fori(i, l, r) for(int i = l; i < r; ++i) #define forie(i, l, r) for (int i = l; i <= r; ++i) #define ford(i, l, r) for (int i = l; i > r; --i) #define forde(i, l, r) for (int i = l; i >= r; --i) #define int long long #define i_inf INT_MAX #define inf LLONG_MAX #define ii pair<int,int> #define fi first #define se second #define gcd __gcd(x, y) #define lcm(x,y) x * y/ gcd(x,y) #define pb push_back #define eb emplace_back #define sz size #define all(x) begin(x), end(x) #define fastio ios_base::sync_with_stdio(0); cin.tie(nullptr); #define el "\n" #define sp " " // int dr[] = {-1, 0, 1, 0}; int dc[] = {0, 1, 0, -1}; // var declare const int maxn = 4e3 + 3; int n, m; int ans = 0; // ds declare char a[maxn][maxn]; // bool check(int x, int y) { return (x > 0 && y > 0 && x <= m && y <= n && a[x][y] != '.'); } // void bfs0_1() { deque <ii> dq; vector <vector<int>> d(m+1, vector<int>(n+1, 0)); d[1][1] = 1; dq.push_front({1, 1}); while (dq.sz()) { auto [x, y] = dq.front(); dq.pop_front(); ans = max(ans, d[x][y]); fori(z, 0, 4) { int x1 = x + dr[z], y1 = y + dc[z]; if (check(x1, y1) && d[x1][y1] == 0) { if (a[x][y] == a[x1][y1]) { d[x1][y1] = d[x][y]; dq.push_front({x1, y1}); } else { d[x1][y1] = d[x][y] + 1; dq.push_back({x1, y1}); } } } } } // void solve() { cin >> m >> n; forie(i, 1, m) forie(j, 1, n) cin >> a[i][j]; bfs0_1(); cout << ans; } // void multi_test() { int t; cin >> t; while (t--) solve(); } // int32_t main() { fastio; solve(); return 0; } /** 5 8 FFR..... .FRRR... .FFFFF.. ..RRRFFR .....FFF **/

Compilation message (stderr)

tracks.cpp: In function 'void bfs0_1()':
tracks.cpp:54:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   54 |         auto [x, y] = dq.front();
      |              ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...