Submission #1166902

#TimeUsernameProblemLanguageResultExecution timeMemory
1166902achiPatkice (COCI20_patkice)C++17
0 / 50
1096 ms332 KiB
#include <bits/stdc++.h> using namespace std; pair<int, int> getPos (char direct, pair<int, int> pos) { if (direct == 'N' || direct == '^') return {pos.first-1, pos.second}; if (direct == 'S' || direct == 'v') return {pos.first+1, pos.second}; if (direct == 'E' || direct == '>') return {pos.first, pos.second+1}; return {pos.first, pos.second-1}; } int main () { cin.tie(0)->sync_with_stdio(0); int r, s; cin >> r >> s; char c; pair<int, int> init_pos; vector<vector<char>> grid(r, vector<char>(s)); for (int i = 0; i < r; i++) { for (int j = 0; j < s; j++) { cin >> c; grid[i][j] = c; if (c == 'o') init_pos = {i, j}; } } vector<pair<int, char>> valid; vector<char> direction = {'N', 'E', 'S', 'W'}; int dist = 0; for (int i = 0; i < 4; i++) { pair<int, int> pos = getPos(direction[i], init_pos); dist = 0; while (grid[pos.first][pos.second] != '.') { if (grid[pos.first][pos.second] == 'x') { valid.push_back({dist, direction[i]}); break; } pos = getPos(grid[pos.first][pos.second], pos); dist++; } } if (valid.empty()) { cout << ":("; return 0; } sort(valid.begin(), valid.end()); cout << ":)\n" << valid.front().second; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...