結果
問題 |
No.1715 Dinner 2
|
ユーザー |
![]() |
提出日時 | 2021-10-22 22:40:58 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,174 bytes |
コンパイル時間 | 2,064 ms |
コンパイル使用メモリ | 171,484 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-09-23 06:23:06 |
合計ジャッジ時間 | 2,756 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 1 WA * 37 |
ソースコード
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef struct{ ll p; ll q; ll num; } CELL; int cmp(CELL a, CELL b){ if(a.q - a.p > b.q - b.p){ return 1; }else{ return 0; } } int main(){ ll n,d,t,l = -100000000,r = 0,m,tm; CELL c[1000] = {}; bool f; cin >> n >> d; for(int i = 0; i < n; i++){ cin >> c[i].p >> c[i].q; c[i].num = i; } sort(c,c+n,cmp); while(l < r){ m = (l+r)/2; tm = 0; t = -1; f = true; for(int i = 0; i < d; i++){ for(int j = 0; j < n; j++){ if(tm >= m + c[j].p && t != j){ t = j; tm += c[j].q - c[j].p; f = false; break; } } if(f){ if(r == m){ r = l; }else{ r = m; } break; } } if(!f){ if(r == m){ l = r; }else{ l = m; } } } cout << l - 1; }