10449 2024. 04. 02 19:53:45 999 Szakaszok cpp17 Elfogadva 100/100 149ms 32316 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#define int long long
using orderedset = tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>;

signed main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int m,n;cin>>m>>n;
	orderedset s;
	vector<vector<int>> v(n,vector<int>(3)),will(0,vector<int>(3));int k[3];
	for(int i = 0; i<m;i++){
		cin>>k[0]>>k[1]>>k[2];
		will.push_back({k[0],0,k[2]});
		will.push_back({k[1],-1,k[2]});
	}
	for(int i = 0; i<n;i++){
		cin>>v[i][2]>>v[i][0]>>v[i][1];
		will.push_back({v[i][2],-2,i});
	}
	sort(will.begin(),will.end());
	int ans=-1,ansv=0;
	int w=will.size();
	for(int i = 0;i<w;i++){
		if(will[i][1]==0){
			s.insert(will[i][2]);
		}
		else if(will[i][1]==-1){
			s.erase(will[i][2]);
		}
		else{
			int temp=s.order_of_key(v[will[i][2]][1]+1)-s.order_of_key(v[will[i][2]][0]);
			if(temp>ansv){
				ansv=temp;
				ans=will[i][2]+1;
			}
		}
	}cout<<ans<<endl;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 100/100
1 Elfogadva 0/0 3ms 1832 KiB
2 Elfogadva 0/0 26ms 6820 KiB
3 Elfogadva 2/2 3ms 2392 KiB
4 Elfogadva 2/2 4ms 2956 KiB
5 Elfogadva 2/2 6ms 3368 KiB
6 Elfogadva 3/3 13ms 4892 KiB
7 Elfogadva 3/3 8ms 5168 KiB
8 Elfogadva 3/3 17ms 6812 KiB
9 Elfogadva 3/3 19ms 7196 KiB
10 Elfogadva 4/4 20ms 7648 KiB
11 Elfogadva 4/4 26ms 8452 KiB
12 Elfogadva 4/4 43ms 11304 KiB
13 Elfogadva 7/7 43ms 13084 KiB
14 Elfogadva 7/7 52ms 15084 KiB
15 Elfogadva 7/7 61ms 19232 KiB
16 Elfogadva 7/7 146ms 29728 KiB
17 Elfogadva 7/7 43ms 11840 KiB
18 Elfogadva 7/7 61ms 19612 KiB
19 Elfogadva 7/7 111ms 22208 KiB
20 Elfogadva 7/7 149ms 29920 KiB
21 Elfogadva 7/7 149ms 30040 KiB
22 Elfogadva 7/7 111ms 32316 KiB