結果
| 問題 |
No.568 じゃんじゃん 落とす 委員会
|
| コンテスト | |
| ユーザー |
vjudge1
|
| 提出日時 | 2025-05-21 11:24:39 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,685 bytes |
| コンパイル時間 | 1,883 ms |
| コンパイル使用メモリ | 163,636 KB |
| 実行使用メモリ | 7,848 KB |
| 最終ジャッジ日時 | 2025-05-21 11:24:46 |
| 合計ジャッジ時間 | 6,954 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | RE * 26 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:21:16: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
21 | freopen("difficulty.in","r",stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:22:16: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
22 | freopen("difficulty.out","w",stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:23:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
23 | scanf("%lld%lld",&n,&m);
| ~~~~~^~~~~~~~~~~~~~~~~~
main.cpp:26:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
26 | scanf("%lld%lld%lld",&num[i].x,&num[i].a,&num[i].b);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ソースコード
#include<bits/stdc++.h>
#define int long long
#define inf 0x3f3f3f3f3f3f3f3f
#define N 100005
using namespace std;
int n,m;
struct po{
int x,a,b;
}num[N];
int idx[N],idy[N];
bool cmpx(int x,int y)
{
return num[x].a>num[y].a;
}
bool cmpy(int x,int y)
{
return num[x].b<num[y].b;
}
signed main()
{
freopen("difficulty.in","r",stdin);
freopen("difficulty.out","w",stdout);
scanf("%lld%lld",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%lld%lld%lld",&num[i].x,&num[i].a,&num[i].b);
idx[i]=i;idy[i]=i;
}
sort(idx+1,idx+1+n,cmpx);
sort(idy+1,idy+1+n,cmpy);
int l=100001,r=0,Cntb=0,Cntc=0,Ans=inf;
for(int i=1;i<=n;i++)
{
num[i].x++;
if(num[i].x>2)
{
Cntb++;
Cntc++;
}
else if(num[i].x==2)
Cntb++;
}
int ida=1,idb=1;
// printf("%lld %lld %lld %lld\n",l,r,Cntb,Cntc);
if(Cntb>=m)
Ans=min(Ans,Cntc);
while(Cntb>=m&&r<=100001)
{
while(num[idy[idb]].b==r)
{
if(num[idy[idb]].x==2)
Cntb--;
else if(num[idy[idb]].x==3)
Cntc--;
num[idy[idb]].x--;
idb++;
}
r++;
// printf("%lld %lld %lld %lld\n",l,r,Cntb,Cntc);
if(Cntb>=m)
Ans=min(Ans,Cntc);
}
while(l--)
{
while(num[idx[ida]].a==l)
{
num[idx[ida]].x++;
if(num[idx[ida]].x==2)
Cntb++;
else if(num[idx[ida]].x==3)
Cntc++;
ida++;
}
// printf("%lld %lld %lld %lld\n",l,r,Cntb,Cntc);
if(Cntb>=m)
Ans=min(Ans,Cntc);
while(Cntb>=m&&r<=100001)
{
while(num[idy[idb]].b==r)
{
if(num[idy[idb]].x==2)
Cntb--;
else if(num[idy[idb]].x==3)
Cntc--;
num[idy[idb]].x--;
idb++;
}
r++;
// printf("%lld %lld %lld %lld\n",l,r,Cntb,Cntc);
if(Cntb>=m)
Ans=min(Ans,Cntc);
}
}
printf("%lld\n",Ans);
return 0;
}
vjudge1