結果
問題 | No.817 Coin donation |
ユーザー |
|
提出日時 | 2019-04-23 21:58:33 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 1,644 ms / 2,000 ms |
コード長 | 757 bytes |
コンパイル時間 | 822 ms |
コンパイル使用メモリ | 74,880 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-15 17:52:57 |
合計ジャッジ時間 | 14,863 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 14 |
ソースコード
#include <iostream> #include <vector> #include <algorithm> using namespace std; typedef long long LL; struct X{ LL A; LL B; }; bool Comp(X&l,X&r){ if (l.A<r.A){ return true; }else if (l.A==r.A){ return l.B<r.B; } return false; } int main(int argc, char* argv[]) { LL N,K,i; cin>>N>>K; vector<X> AB(N); LL MaxV=0; LL MinV=10e10; for (i=0;i<N;i++){ cin>>AB[i].A>>AB[i].B; if (MinV>AB[i].A){ MinV=AB[i].A; } if (MaxV<AB[i].B){ MaxV=AB[i].B; } } sort(AB.begin(),AB.end(),Comp); LL k=0; LL M=MinV; LL j=0; while (MinV<=MaxV){ for (i=j;i<N;i++){ if (M<AB[i].A){ break; } if (M<=AB[i].B){ k++; } if (k==K){ cout<<M<<endl; return 0; } } M++; if (M>AB[j].B){ j++; } } return 0; }