题目

#include<iostream>
#include<vector>
#include<map>
using namespace std;
const int N=100010;
vector<int>add[N],de[N];
map<int,int> vis; int main()
{
   
    int n,m;
    cin>>n>>m;
    for(int i=0;i<m;i++)
    {
   
        int l,r,w;
        cin>>l>>r>>w;
        add[l].push_back(w);
        de[r+1].push_back(w);
    }
    int cnt=0;
    int ans=0;
    int maxx=-1e6;
    for(int i=1;i<=n;i++)
    {
   
        for(auto j:add[i])
        {
   
          if(vis[j]==0)
              cnt++;
           vis[j]++;
        }
        for(auto j:de[i])
        {
   
           vis[j]--;
            if(vis[j]==0)
                cnt--;
        }
        if(cnt>maxx)
        {
   
            maxx=cnt;
            ans=i;
        }
    }
    printf("%d\n",ans);
    return 0;
}