Submission #582698

#TimeUsernameProblemLanguageResultExecution timeMemory
582698chirathnirodhaAutobahn (COI21_autobahn)C++17
100 / 100
133 ms16888 KiB
//Coded by Chirath Nirodha
#include<bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//using namespace __gnu_pbds;
using namespace std;
#define F first
#define S second
#define PB push_back
#define MP make_pair
#define P push
#define I insert
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
//typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> indexed_set;
const ll mod=1e9+7;
inline void io(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
}
void solve(){
    io();
	ll n,k,x;cin>>n>>k>>x;
  	ll l,t,r;
	vector<pair<ll,int> > v;
	for(int i=0;i<n;i++){
		cin>>l>>t>>r;
		l--;
		v.PB(MP(l,1));
		v.PB(MP(r,2));
		v.PB(MP(l+x,3));
		v.PB(MP(r+x,4));
		if(r-l-t<=0)continue;
		v.PB(MP(l+t,5));
		v.PB(MP(r,6));
		v.PB(MP(l+t+x,7));
		v.PB(MP(r+x,8));
	}
	sort(v.begin(),v.end());
	ll pos=-x,inc=0,dec=0,cnt=0,cntp=0,val=0;
	ll ans=0;
	for(int i=0;i<v.size();i++){
		ll d=v[i].F-(pos+x);
		if(cnt>=k)val+=inc*d;
		if(cntp>=k)val+=dec*d;
		ans=max(ans,val);
		if(v[i].S==1)cnt++;
		else if(v[i].S==2)cnt--;
		else if(v[i].S==3)cntp++;
		else if(v[i].S==4)cntp--;
		else if(v[i].S==5)inc++;
		else if(v[i].S==6)inc--;
		else if(v[i].S==7)dec--;
		else dec++;
		pos+=d;
	}
	cout<<ans<<endl;
}
int main(){
    io();
	solve();
	//int t;cin>>t;for(int i=0;i<t;i++)solve();
    return 0;
}

Compilation message (stderr)

autobahn.cpp: In function 'void solve()':
autobahn.cpp:43:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |  for(int i=0;i<v.size();i++){
      |              ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...