結果
| 問題 |
No.817 Coin donation
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2019-04-19 21:46:35 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 131 ms / 2,000 ms |
| コード長 | 971 bytes |
| コンパイル時間 | 1,931 ms |
| コンパイル使用メモリ | 173,524 KB |
| 実行使用メモリ | 8,144 KB |
| 最終ジャッジ日時 | 2024-09-22 18:12:40 |
| 合計ジャッジ時間 | 3,289 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 14 |
ソースコード
#include "bits/stdc++.h"
using namespace std;
typedef long long ll;
#define INF (1<<30)
#define INFLL (1ll<<30)
typedef pair<int, int> P;
typedef pair<int, P> E;
#define MOD (1000000007ll)
#define l_ength size
void mul_mod(ll& a, ll b){
a *= b;
a %= MOD;
}
void add_mod(ll& a, ll b){
a += b;
a %= MOD;
}
ll cnt[225816],a[100100],b[100100];
vector<ll> v;
int main(void){
int n,m,i;
ll k;
cin >> n >> k;
--k;
for(i=0; i<n; ++i){
cin >> a[i] >> b[i];
++b[i];
v.push_back(a[i]);
v.push_back(b[i]);
}
v.push_back(INFLL);
sort(v.begin(),v.end());
for(i=0; i<n; ++i){
++cnt[(int)(lower_bound(v.begin(),v.end(),a[i])-v.begin())];
--cnt[(int)(lower_bound(v.begin(),v.end(),b[i])-v.begin())];
}
m = v.l_ength()-1;
for(i=0; i<m; ++i){
cnt[i+1] += cnt[i];
}
for(i=0; i<m; ++i){
if(v[i]==v[i+1]){
continue;
}
if(0<=k && k<cnt[i]*(v[i+1]-v[i])){
cout << (v[i]+k/cnt[i]) << endl;
break;
}
k -= cnt[i]*(v[i+1]-v[i]);
}
return 0;
}