Submission #1239501

#TimeUsernameProblemLanguageResultExecution timeMemory
1239501Ghulam_JunaidComparing Plants (IOI20_plants)C++20
0 / 100
0 ms328 KiB
#include <bits/stdc++.h> #include "plants.h" using namespace std; const int N = 305; int n, k, reach[N][N], edge[N][N]; void dfs(int v, int s){ reach[s][v] = 1; for (int u = 0; u < n; u ++) if (!reach[s][u] and edge[v][u]) dfs(u, s); } void init(int kk, vector<int> r) { n = r.size(), k = kk; for (int i = 0; i < n; i ++){ for (int j = i + 1; j < i + n; j ++){ int x = j - i; if (r[j] < r[i] - x) edge[i][j] = 1; if (r[j] > r[i] + x) edge[j][i] = 1; } } for (int i = 0; i < n; i ++){ if (r[i] == 0){ for (int j = i + 1; j < i + k; j ++) edge[j][i] = 1; } if (r[i] == k - 1){ for (int j = i + 1; j < i + k; j ++) edge[i][j] = 1; } } for (int v = 0; v < n; v ++) dfs(v, v); return; } int compare_plants(int x, int y) { if (reach[x][y] and reach[y][x]) return 0; if (reach[x][y]) return -1; if (reach[y][x]) return 1; 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...