제출 #1239510

#제출 시각아이디문제언어결과실행 시간메모리
1239510Ghulam_JunaidComparing Plants (IOI20_plants)C++20
0 / 100
57 ms3652 KiB
#include <bits/stdc++.h> #include "plants.h" // #include "grader.cpp" using namespace std; const int N = 305; int 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) { int 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 % n)] < r[i] - x + 1) edge[i][(j % n)] = 1; if (r[(j % n)] > r[i] + x - 1) edge[(j % n)][i] = 1; } } for (int i = 0; i < n; i ++){ if (r[i] == 0){ for (int j = i + 1; j < i + k; j ++) edge[(j % n)][i] = 1; } if (r[i] == k - 1){ for (int j = i + 1; j < i + k; j ++) edge[i][(j % n)] = 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...