結果
| 問題 | No.3759 Watch Fireworks |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-10-10 00:00:08 |
| 言語 | C++14 (gcc 15.3.0 + boost 1.92.0 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 211 ms / 2,000 ms |
| + 316µs | |
| コード長 | 772 bytes |
| 記録 | |
| コンパイル時間 | 285 ms |
| コンパイル使用メモリ | 78,416 KB |
| 実行使用メモリ | 9,904 KB |
| 最終ジャッジ日時 | 2026-10-10 00:00:13 |
| 合計ジャッジ時間 | 4,389 ms |
|
ジャッジサーバーID (参考情報) |
judge5_0 / judge4_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 47 |
ソースコード
#include<iostream>
#include<cassert>
using namespace std;
int N;
long X[3<<17],Y[3<<17];
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin>>N;
long lx=2e9,rx=-2e9;
long ly=2e9,ry=-2e9;
for(int i=0;i<N;i++)
{
int x,y;cin>>x>>y;
X[i]=x+y;
Y[i]=x-y;
lx=min(lx,X[i]);
rx=max(rx,X[i]);
ly=min(ly,Y[i]);
ry=max(ry,Y[i]);
}
long L=-1,R=4e9;
while(R-L>1)
{
long D=(L+R)/2;
bool fn=false;
for(long px:{lx,rx-D})for(long py:{ly,ry-D})
{
long a=-2e10,b=2e10;
long c=-2e10,d=2e10;
for(int i=0;i<N;i++)
{
if(px<=X[i]&&X[i]<=px+D&&py<=Y[i]&&Y[i]<=py+D)continue;
a=max(a,X[i]-D);
b=min(b,X[i]);
c=max(c,Y[i]-D);
d=min(d,Y[i]);
}
if(a<=b&&c<=d)fn=true;
}
if(fn)R=D;
else L=D;
}
cout<<R<<endl;
}