Submission #1100259

#TimeUsernameProblemLanguageResultExecution timeMemory
1100259vjudge1Maxcomp (info1cup18_maxcomp)C++17
0 / 100
1 ms508 KiB
#include <iostream> #include <vector> #include <algorithm> using namespace std; int n, m; vector<vector<int>> matrix; vector<vector<bool>> visited; int dx[] = {1, -1, 0, 0}; int dy[] = {0, 0, 1, -1}; bool isValid(int x, int y) { return x >= 0 && x < n && y >= 0 && y < m; } void dfs(int x, int y, int& sum, int& count) { visited[x][y] = true; sum += matrix[x][y]; count++; for (int dir = 0; dir < 4; ++dir) { int nx = x + dx[dir]; int ny = y + dy[dir]; if (isValid(nx, ny) && !visited[nx][ny]) { dfs(nx, ny, sum, count); } } } int main() { cin >> n >> m; matrix.resize(n, vector<int>(m)); visited.resize(n, vector<bool>(m, false)); for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { cin >> matrix[i][j]; } } int maxValue = -1e9; for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { if (!visited[i][j]) { int sum = 0, count = 0; dfs(i, j, sum, count); if (count > 0) { maxValue = max(maxValue, sum - count); } } } } cout << maxValue << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...