結果
問題 | No.817 Coin donation |
ユーザー |
![]() |
提出日時 | 2019-04-19 22:47:06 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,071 bytes |
コンパイル時間 | 604 ms |
コンパイル使用メモリ | 77,632 KB |
実行使用メモリ | 15,744 KB |
最終ジャッジ日時 | 2024-09-22 23:07:59 |
合計ジャッジ時間 | 2,281 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 11 RE * 3 |
コンパイルメッセージ
main.cpp: In function ‘int main(int, char**)’: main.cpp:26:10: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 26 | scanf("%ld%ld", &n, &k); | ~~~~~^~~~~~~~~~~~~~~~~~ main.cpp:32:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 32 | scanf("%ld%ld", &a, &b); | ~~~~~^~~~~~~~~~~~~~~~~~
ソースコード
#include <stdio.h>#include <string>#include <cstring>#include <stdlib.h>#include <math.h>#include <algorithm>#include <vector>#include <set>#include <map>#include <queue>#include <list>#include <iterator>#pragma warning(disable:4996)typedef long long ll;#define MIN(a, b) ((a)>(b)? (b): (a))#define MAX(a, b) ((a)<(b)? (b): (a))#define LINF 9223300000000000000#define INF 2140000000#define MOD 1000000007using namespace std;int main(int argc, char* argv[]){long n, k;scanf("%ld%ld", &n, &k);map<long, long> cnt;long i;for(i=0; i<n; i++) {long a,b;scanf("%ld%ld", &a, &b);cnt[a-1]++;cnt[b]--;}ll sum=0;long val_prev=0;long prev=0;auto it=cnt.begin();ll ans=0;for(; it!=cnt.end(); ++it) {if(it!=cnt.begin()) {sum += val_prev * (it->first-prev);if(sum>k) break;}val_prev+=it->second;prev=it->first;ans = prev+(k-sum-1)/val_prev;}printf("%lld\n", ans+1);return 0;}