QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#36785 | #2442. Welcome Party | yyf_0404 | WA | 631ms | 11600kb | C++ | 1.3kb | 2022-06-28 20:00:43 | 2022-06-28 20:00:44 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
int n;
struct Pr
{
long long x, y;
bool operator < (const Pr& b)const
{
return y > b.y;
}
}a[100005];
struct Unit
{
long long x;
int id;
Unit(long long x = 0, int id = 0): x(x), id(id){}
bool operator < (const Unit& b)const
{
return x < b.x || x == b.x && id < b.id;
}
};
set<Unit> q;
void solve()
{
scanf("%d", &n);
for(int i = 0; i < n; i++)
scanf("%d%d", &a[i].x, &a[i].y);
sort(a, a + n);
for(int i = 0; i < n; i++)
q.insert(Unit(a[i].x, i));
long long maxn = -1, minn = 0x7fffffffffffffff;
for(int i = 0; i < n; i++){
q.erase(Unit(a[i].x, i));
if(i == n - 1){
minn = min(minn, abs(maxn - a[i].y));
continue;
}
auto p1 = q.lower_bound(Unit(a[i].y, -1));
if(p1 != q.end() && p1->x > maxn)
minn = min(minn, p1->x - a[i].y);
if(p1 != q.begin()){
p1--;
if(p1->x > maxn)
minn = min(minn, a[i].y - p1->x);
}
if(i) minn = min(minn, abs(maxn - a[i].y));
}
printf("%lld\n", minn);
}
int main()
{
int T;
scanf("%d", &T);
while(T--) solve();
return 0;
}
详细
Test #1:
score: 0
Wrong Answer
time: 631ms
memory: 11600kb
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 1 1000000000 1 0 0 5 1 30 10 10 3 0 10 5 0 5 1 21 10 10 3 0 10 5 0 14195379 1503668936 45629128 704884319 174981621 68268229 6174589 889250650 306321049 566648138 439397288 649065511 716001474 133505742 80835533 325600740 135053668 713848274 2104610410 675286160 3402307189 843660619 31609587...
result:
wrong answer 5th lines differ - expected: '1000000000', found: '1'