結果

問題 No.568 じゃんじゃん 落とす 委員会
ユーザー vjudge1
提出日時 2025-05-17 17:11:51
言語 C++17(gcc12)
(gcc 12.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 931 bytes
コンパイル時間 4,508 ms
コンパイル使用メモリ 210,128 KB
実行使用メモリ 7,848 KB
最終ジャッジ日時 2025-05-17 17:12:02
合計ジャッジ時間 7,329 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other WA * 26
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function 'bool P(long long int, long long int)':
main.cpp:16:22: warning: 'cnt2' may be used uninitialized [-Wmaybe-uninitialized]
   16 |         return cnt2>=m;
      |                      ^
main.cpp:9:19: note: 'cnt2' was declared here
    9 |         int cur=0,cnt2;
      |                   ^~~~
main.cpp: In function 'int main()':
main.cpp:35:17: warning: 'l1' is used uninitialized [-Wuninitialized]
   35 |         while(l1<=r1){
      |               ~~^~~~
main.cpp:34:14: note: 'l1' was declared here
   34 |         }int l1,r1=mxa+1;
      |              ^~
main.cpp:40:25: warning: 'cnt2' may be used uninitialized [-Wmaybe-uninitialized]
   40 |                         if(P(mid1,mid)){
      |                         ^~
main.cpp:9:19: note: 'cnt2' was declared here
    9 |         int cur=0,cnt2;
      |                   ^~~~

ソースコード

diff #

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=100010;
int xx[N],a[N],b[N];
int n,m,ans=LLONG_MAX;
bool P(int x,int y)
{
	int cur=0,cnt2;
	for(int i=1;i<=n;++i){
		cur=xx[i];
		cur+=(a[i]>=x);
		cur+=(b[i]>=y);
		cnt2+=(cur>=2);
	}
	return cnt2>=m;
}
int sc(int x,int y){
	int ress=0,now=0;
	for(int i=1;i<=n;++i)	{
		now=xx[i];
		now+=(a[i]>=x);
		now+=(b[i]>=y);
		ress+=(now>=3);
	}return ress;
}signed main(){
//	freopen("difficulty.in","r",stdin);
//	freopen("difficulty.out","w",stdout);
	cin>>n>>m;
	int mxa=-1,mxb=-1;
	for(int i=1;i<=n;++i){
		cin>>xx[i]>>a[i]>>b[i];
		mxa=max(mxa,a[i]);mxb=max(mxb,b[i]);
	}int l1,r1=mxa+1;
	while(l1<=r1){
		int mid1=l1+(l1+r1)/2;
		int l=0,r=mxb+1,res=-1;
		while(l<=r){
			int mid=l+(r-l)/2;
			if(P(mid1,mid)){
				res=mid;
				l=mid+1;
			}else r=mid-1;
		}if(res!=-1)r1=mid1-1;
		else l1=mid1+1;
		ans=min(ans,sc(mid1,res));
	}cout<<ans;
	return 0;
}
0