#include "september.h"
#include <vector>
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
// Reset all state - important for oj.uz multiple calls
std::vector<int> count(N, 0);
int unique_nodes_encountered = 0;
int nodes_fully_seen = 0;
int day_count = 0;
// We iterate through the sequences.
// The number of nodes in each S[j] is N-1.
for (int i = 0; i < N - 1; i++) {
for (int j = 0; j < M; j++) {
int node = S[j][i];
if (count[node] == 0) {
unique_nodes_encountered++;
}
count[node]++;
if (count[node] == M) {
nodes_fully_seen++;
}
}
// A day can end when every node we've touched
// has been processed in all M sequences.
if (unique_nodes_encountered == nodes_fully_seen) {
day_count++;
}
}
return day_count;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |