#include "september.h"
#include <bits/stdc++.h>
// #define int long long
#define endl "\n"
#define ff first
#define ss second
#define pb push_back
#define all(v) v.begin(), v.end()
using namespace std;
int solve(int n, int m, vector<int> f, vector<vector<int>> s) {
// return 0;
vector <pair<int, int>> v(n, {n+1, -1});
for (int i=0; i < m; i++) {
for (int j=0; j < n - 1; j++) {
v[s[i][j]].ff = min(v[s[i][j]].ff, j);
v[s[i][j]].ss = max(v[s[i][j]].ss, j);
}
}
set <pair<int, int>> w;
for (int i=1; i < n; i++) {
w.insert(v[i]);
}
set <pair<int,int>> ans;
while (w.size() > 1) {
auto x1 = *w.begin();
auto y2 = w.begin();
y2++;
auto x2 = *y2;
if (x1.ss > x2.ff) {
w.erase(w.begin());
w.erase(w.begin());
w.insert({min(x1.ff, x2.ff), max(x1.ss, x2.ss)});
}
else {
ans.insert(*w.begin());
w.erase(w.begin());
}
}
while (!w.empty()) ans.insert(*w.begin()), w.erase(w.begin());
return ans.size();
}
# | 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... |