| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 582698 | chirathnirodha | Autobahn (COI21_autobahn) | C++17 | 133 ms | 16888 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
//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;
}컴파일 시 표준 에러 (stderr) 메시지
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
