Submission #1202522

#TimeUsernameProblemLanguageResultExecution timeMemory
1202522AzeTurk810September (APIO24_september)C++20
0 / 100
1 ms524 KiB
#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 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...