Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
Có một dãy số ban đầu rỗng. Người ta lần lượt thực hiện ~Q~ thao tác. Ở thao tác thứ ~i~, người ta sẽ chèn thêm ~b_i~ số có giá trị ~a_i~ vào cuối dãy số.
Sau khi thực hiện xong cả ~Q~ thao tác, hãy cho biết số nhỏ thứ K trong dãy có giá trị bao nhiêu.
Input
- Dòng đầu tiên gồm số nguyên ~Q\ (1 ≤ Q ≤ 10^5)~ - số thao tác được thực hiện;
- ~Q~ dòng tiếp theo, dòng thứ ~i~ gồm hai số nguyên ~a_i~ và ~b_i~ ~(1 ≤ a_i, b_i ≤ 10^9)~ - mô tả thao tác thứ ~i~;
- Dòng tiếp theo gồm số nguyên ~K\ (1 ≤ K ≤ b_1 + b_2 + . . . + b_Q)~.
Output
- In ra giá trị số nhỏ thứ ~K~ sau khi thực hiện ~Q~ thao tác.
Sample
Input #1
3
5 2
2 3
3 1
4
Output #1
3
Input #2
4 7 1 1 1 4 1 4 1 3
#### Output #2
4
#### Input #3
1 100 1 1
#### Output #3
100 ```
Hint
- Ở ví dụ thứ nhất, dãy số thu được là ~[5, 5, 2, 2, 2, 3]~. Giá trị nhỏ thứ 4 trong dãy này là ~3~;
- Ở ví dụ thứ hai, dãy số thu được là ~[7, 1, 4, 4]~. Giá trị nhỏ thứ ~3~ trong dãy này là ~4~;
- Ở ví dụ thứ ba, dãy số thu được là ~[100]~. Giá trị nhỏ nhất trong dãy này cũng là ~100~.
Problem source: Kc97ble - Free Contest
Bình luận
include<bits/stdc++.h>
using namespace std; using ll= long long; ll tong=0;
int main() { int t; cin>>t; vector<int> ve; while(t--) { int x,n; cin>>x>>n; for(int i=0;i<n;i++) { ve.push_back(x); } } int k; cin>>k;
sort(ve.begin(),ve.end()); cout<<ve[k-1]; }