Just Think about the case:
1 5
2 4
5 6
we can also think that
1 4
2 5
5 6
actually we are sort the first of the pair in increment order & second in negative order
because first element of the pair gives the birth information & other gives the death information
so first element just added & second is just minus.
///Bismillahir Rahmanir Rahim
///Author: Tanvir Ahmmad
///CSE,Islamic University,Bangladesh
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
#include<cstring>
#include<sstream>
#include<cmath>
#include<cstring>
#include<vector>
#include<queue>
#include<map>
#include<set>
#include<stack>
#include<vector>
#include<iterator>
#include <functional> ///sort(arr,arr+n,greater<int>()) for decrement of array
/*every external angle sum=360 degree
angle find using polygon hand(n) ((n-2)*180)/n*/
///Floor[Log(b) N] + 1 = the number of digits when any number is represented in base b
using namespace std;
typedef long long ll;
int main()
{
ll n,a,b,ans_a=-1,ans_b=-1,ma=-1,cnt=0;
cin>>n;
map<ll,ll>mp;
map<ll,ll>::iterator it;
for(ll i=0; i<n; i++)
{
cin>>a>>b;
if(mp.find(a)==mp.end())
mp[a]=1;
else
mp[a]++;
if(mp.find(b)==mp.end())
mp[b]=-1;
else
mp[b]--;
}
for(it=mp.begin(); it!=mp.end(); it++)
{
cnt+=it->second;
if(cnt>ma)
ma=max(ma,cnt),ans_a=it->first,ans_b=ma;
}
cout<<ans_a<<" "<<ans_b<<endl;
return 0;
}
///Alhamdulillah
Problem Link:https://codeforces.com/contest/1424/problem/G
Comments
Post a Comment