結果
問題 |
No.568 じゃんじゃん 落とす 委員会
|
ユーザー |
![]() |
提出日時 | 2018-07-07 14:59:24 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,165 bytes |
コンパイル時間 | 597 ms |
コンパイル使用メモリ | 59,900 KB |
実行使用メモリ | 16,128 KB |
最終ジャッジ日時 | 2024-07-04 13:20:07 |
合計ジャッジ時間 | 5,854 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | TLE * 1 -- * 25 |
ソースコード
#include <iostream> #include <cstdlib> #include <vector> using namespace std; int main(){ int N, M; cin >> N >> M; vector<long long> x(N); vector<long long> a(N); vector<long long> b(N); int three_com = N+1; //3完以上の人数 初期値の設定に注意! for(int i=0;i<N;i++){ cin >> x[i] >> a[i] >> b[i]; } int b_dif = 100001; for(int a_dif=0; a_dif <= 100000; a_dif++){ int two_com = 0; //2完以上の人数 for(int i=0;i<N;i++){ int com = x[i]; if(a[i] >= a_dif) com++; if(b[i] >= b_dif) com++; if(com >= 2) two_com++; } while(two_com < M && b_dif > 0){ b_dif--; two_com = 0; //2完以上の人数 for(int i=0;i<N;i++){ int com = x[i]; if(a[i] >= a_dif) com++; if(b[i] >= b_dif) com++; if(com >= 2) two_com++; } } if(two_com < M) break; int tmp_com = 0; //3完以上の人数 for(int i=0;i<N;i++){ int com = x[i]; if(a[i] >= a_dif) com++; if(b[i] >= b_dif) com++; if(com >= 3) tmp_com++; } three_com = min(three_com, tmp_com); } cout << three_com << endl; return 0; }