QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#619160 | #2442. Welcome Party | Afterlife# | AC ✓ | 893ms | 19468kb | C++20 | 1.7kb | 2024-10-07 13:21:16 | 2024-10-07 13:21:17 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define int long long
using pii=pair<int,int>;
const int N=1e5+1e3+7;
int T,n;
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cin>>T;
while(T--)
{
cin>>n;
multiset<int> ms;
map<int,vector<int> >v;
for(int i=1;i<=n;i++)
{
int x,y;
cin>>x>>y;
v[x].push_back(y);
ms.insert(y);
}
multiset<int> all;
int ans=1e18;
for(auto [x,ys]:v)
{
for(auto y:ys)
ms.erase(ms.find(y));
for(auto y:ys)
all.insert(y);
for(auto y:ys)
{
all.erase(all.find(y));
if(!ms.size())
{
auto it=all.lower_bound(x);
if(it!=all.end())
ans=min(ans,*it-x);
if(it!=all.begin())
ans=min(ans,x-*prev(it));
}
else
{
if(*prev(ms.end())>=x)
ans=min(ans,*prev(ms.end())-x);
else
{
auto it=all.lower_bound(x);
if(it!=all.end())
ans=min(ans,*it-x);
if(it!=all.begin())
ans=min(ans,x-*prev(it));
ans=min(ans,x-*prev(ms.end()));
}
}
all.insert(y);
}
}
cout<<ans<<"\n";
}
}
詳細信息
Test #1:
score: 100
Accepted
time: 893ms
memory: 19468kb
input:
66 5 27 46 89 13 55 8 71 86 22 35 3 3 5 4 7 6 2 2 0 1000000000 1000000000 0 2 1000000000 0 0 1000000000 2 1000000000 0 1000000000 0 2 0 1000000000 0 1000000000 2 1000000000 1000000000 0 0 2 0 0 0 0 2 1000000000 1000000000 1000000000 1000000000 3 90 30 90 50 90 85 3 0 0 0 2 0 5 3 20 30 20 50 20 70 3 ...
output:
3 1 0 0 1000000000 1000000000 1000000000 0 0 5 0 10 5 10 3 0 10 5 0 5 0 10 5 10 3 0 10 5 0 146595730144168239 10974087366700578 21076180420813408 183538167814754058 46751451188711820 365292306661444331 23639646046527434 40476687889457528 270663364266559542 139940820548070767 21494649603533736 100200...
result:
ok 66 lines