Submission #832838

# Submission time Handle Problem Language Result Execution time Memory
832838 2023-08-21T15:54:12 Z mat_jur trapezoid (balkan11_trapezoid) C++17
2 / 100
142 ms 17960 KB
#include <bits/stdc++.h>
using namespace std;
#ifdef DEBUG
auto&operator<<(auto &o, pair<auto, auto> p) {o << "(" << p.first << "," << p.second << ")"; return o;}
auto operator<<(auto&o,auto x)->decltype(x.end(),o){o<<"{";for(auto e:x)o<< e << ", ";return o<<"}";}
#define debug(X) cerr << "["#X"]:" << X << '\n';
#else 
#define debug(X) ;
#endif
#define ll long long
#define trapez tuple<int, int, int, int, int>

int main () {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
//	freopen("trapezoid.in", "r", stdin);
//	freopen("trapezoid.out", "w", stdout);

	int n;
	cin >> n;
	vector<tuple<int, int, int, int, int>> v;
	map<int, int> M;
	for (int i = 0; i < n; i++) {
		int a, b, c, d;
		cin >> a >> b >> c >> d;
		v.emplace_back(make_tuple(a, b, c, d, i));
		M[c]; M[d];
	}
	M[0];
	int x = 0;
	for (auto &e : M) {
		e.second = x++;
	}
	x--;
	sort(v.begin(), v.end());
	auto cmp = [&](trapez a, trapez b) {return get<1>(a) < get<1>(b);};
	priority_queue<trapez, vector<trapez>, decltype(cmp)> Q(cmp);
	vector<int> dp(n);
	int res = 0;

	int base = 1;
	while (base < x) base *= 2;
	vector<int> tree(2*base);
	auto update = [&](int v, int x) {
		v += base;
		while (v > 0) {
			tree[v] = max(tree[v], x);
			v /= 2;
		}
	};
	auto query = [&](int a, int b) {
		a += base-1;
		b += base+1;
		int res = 0;
		while (a/2 != b/2) {
			if (a%2 == 0) res = max(res, tree[a+1]);
			if (b%2 == 1) res = max(res, tree[b-1]);
			a /= 2; b /= 2;
		}
		return res;
	};
	for (auto &[a, b, c, d, idx] : v) {
		while (!Q.empty() && get<1>(Q.top()) < a) {
			update(M[get<3>(Q.top())], dp[get<4>(Q.top())]);
			Q.pop();
		}
		dp[idx] = query(0, M[c])+1;
		res = max(res, dp[idx]);
		Q.push(make_tuple(a, b, c, d, idx));
	}
	
	cout << res << ' ' << 1;

	return 0;
}
# Verdict Execution time Memory Grader output
1 Partially correct 0 ms 212 KB Partially correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Incorrect 1 ms 340 KB Output isn't correct
4 Incorrect 1 ms 468 KB Output isn't correct
5 Incorrect 2 ms 596 KB Output isn't correct
6 Incorrect 3 ms 724 KB Output isn't correct
7 Incorrect 3 ms 980 KB Output isn't correct
8 Incorrect 4 ms 1236 KB Output isn't correct
9 Incorrect 11 ms 2140 KB Output isn't correct
10 Incorrect 17 ms 4068 KB Output isn't correct
11 Incorrect 30 ms 4684 KB Output isn't correct
12 Incorrect 61 ms 9088 KB Output isn't correct
13 Incorrect 61 ms 10308 KB Output isn't correct
14 Incorrect 81 ms 14368 KB Output isn't correct
15 Incorrect 103 ms 15024 KB Output isn't correct
16 Incorrect 100 ms 15544 KB Output isn't correct
17 Incorrect 108 ms 16112 KB Output isn't correct
18 Incorrect 84 ms 16684 KB Output isn't correct
19 Incorrect 136 ms 14568 KB Output isn't correct
20 Incorrect 142 ms 17960 KB Output isn't correct