Submission #757472

#TimeUsernameProblemLanguageResultExecution timeMemory
757472The_SamuraiTracks in the Snow (BOI13_tracks)C++17
100 / 100
1630 ms245684 KiB
#include "bits/stdc++.h" using namespace std; int INF = 1e9; vector<int> dx = {1, -1, 0, 0}; vector<int> dy = {0, 0, 1, -1}; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); clock_t startTime = clock(); int n, m; cin >> n >> m; vector<vector<char>> a(n, vector<char>(m, '.')); int cnt_not = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> a[i][j]; if (a[i][j] != '.') { cnt_not++; } } } if (max(n, m) == 1) { cout << 1; return 0; } vector<pair<int, int>> can = {{0, 0}}; vector<vector<bool>> vis(n, vector<bool>(m)); char x = a[0][0]; vis[0][0] = true; cnt_not--; int ans = 0; while (cnt_not > 0) { ans++; vector<pair<int, int>> nw_can = {{0, 0}}; for (int p = 0; p < can.size(); p++) { auto [i, j] = can[p]; for (int k = 0; k < 4; k++) { int ii = i + dx[k]; int jj = j + dy[k]; if (min(ii, jj) < 0 or ii == n or jj == m) continue; if (vis[ii][jj]) continue; if (a[ii][jj] == x) { nw_can.emplace_back(ii, jj); can.emplace_back(ii, jj); vis[ii][jj] = true; cnt_not--; } } } x = (x == 'R' ? 'F' : 'R'); can = nw_can; } cout << ans; #ifdef sunnitov cerr << "\nTime: " << (int)((double)(clock() - startTime) / CLOCKS_PER_SEC * 1000); #endif } /* 5 6 FFFFFF RRRRRF F...RF F...RF F..RRF FFFRRF */

Compilation message (stderr)

tracks.cpp: In function 'int main()':
tracks.cpp:38:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |         for (int p = 0; p < can.size(); p++) {
      |                         ~~^~~~~~~~~~~~
tracks.cpp:11:13: warning: unused variable 'startTime' [-Wunused-variable]
   11 |     clock_t startTime = clock();
      |             ^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...