結果
| 問題 |
No.568 じゃんじゃん 落とす 委員会
|
| コンテスト | |
| ユーザー |
vjudge1
|
| 提出日時 | 2025-05-17 17:36:52 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,035 bytes |
| コンパイル時間 | 1,870 ms |
| コンパイル使用メモリ | 159,896 KB |
| 実行使用メモリ | 21,704 KB |
| 最終ジャッジ日時 | 2025-05-17 17:36:59 |
| 合計ジャッジ時間 | 6,077 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | TLE * 1 -- * 25 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define int long long
int a[100005], b[100005], x[100005], cnt2 = 0, cnt3 = 0, n, m;
int Sa;
int ck(int X)
{
int c2 = 0, c3 = 0;
for(int i = 1; i <= n; i++)
{
if((b[i] >= X)+x[i]+(a[i]>=Sa) >= 2) c2++;
if((b[i] >= X)+x[i]+(a[i]>=Sa) >= 3) c3++;
}
if(c2 < m) return 999999999;
return c3;
}
signed main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin >> n >> m;
for(int i = 1; i <= n; i++)
{
cin >> x[i] >> a[i] >> b[i];
}
int Ans = 999999999;
for(Sa = 0; Sa <= 100001; Sa++)
{
cnt2 = cnt3 = 0;
// for(int i = 1; i <= n; i++)
// {
// if(x[i]+(a[i]>=Sa) >= 2) cnt2++;
// if(x[i]+(a[i]>=Sa) >= 3) cnt3++;
// }
int l = 0, r = 100001, ans = 0;
while(l < r)
{
int mid = (l+r)/2;
int Ck = ck(mid);
if(r-l == 1)
{
ans = min(ck(l), ck(r));
break;
}
//cout << Ck << ' ' << l << ' ' << r << '\n';
if(Ck == 999999999) r = mid-1;
else
{
l = mid;
ans = Ck;
}
}
Ans = min(Ans, ans);
}
cout << Ans << endl;
}
vjudge1