ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#198062 | #3456. 跑步比赛 | Simon1003 | 100 | 870ms | 2816kb | C++ | 1.3kb | 2023-11-19 14:20:38 | 2023-11-19 16:07:52 |
answer
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int v[N], w[N], n;
bool cmp1(int i, int j)
{
return w[i] > w[j];
}
bool cmp2(int i, int j)
{
return (v[i] + w[i]) > (v[j] + w[j]);
}
bool check(long long mid)
{
vector<int> zhong, gei;
for (int i = 1; i <= n; i++)
{
if (v[i] < mid)
{
zhong.push_back(i);
}
else
{
gei.push_back(i);
}
}
if (zhong.size() > gei.size())
{
return false;
}
sort(zhong.begin(), zhong.end(),cmp1);
sort(gei.begin(), gei.end(),cmp2);
for (int i = 0; i < zhong.size(); i++)
{
int x = v[gei[i]] - (w[zhong[i]] - w[gei[i]]);
if (x < mid)
{
return false;
}
}
return true;
}
void solve() {
cin>>n;
for (int i = 1; i <= n; i++) {
cin>>v[i]>>w[i];
}
int l = 1, r = *max_element(v + 1, v + 1 + n);
while (l < r)
{
long long mid = (l + r + 1) >> 1;
if (check(mid)) {
l = mid;
} else {
r = mid - 1;
}
}
printf("%d\n", l);
}
int main() {
// freopen("int.txt","r",stdin);
// freopen("12345.txt","w",stdout);
int t;
cin>>t;
while (t--) {
solve();
}
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 10
Accepted
time: 0ms
memory: 1240kb
input:
1 10 266993 706803678 802362985 892644371 953855359 196462821 817301757 409460796 773943961 48876395...
output:
555904242
result:
ok single line: '555904242'
Test #2:
score: 10
Accepted
time: 0ms
memory: 1244kb
input:
1 10 46 15 50 98 93 77 31 43 84 90 6 24 14 37 73 29 43 9 4 8
output:
46
result:
ok single line: '46'
Test #3:
score: 10
Accepted
time: 3ms
memory: 1248kb
input:
20 300 538289667 450937378 534888897 527066716 80798460 335568208 947853348 207336428 510842953 1625...
output:
505659071 550791327 628691185 463559292 127705784 468121697 411937181 435008942 421342654 510493557 ...
result:
ok 20 lines
Test #4:
score: 10
Accepted
time: 2ms
memory: 1248kb
input:
20 83 8 14 31 91 97 72 23 73 68 70 51 78 2 19 10 38 11 16 19 64 97 47 43 65 28 88 63 50 49 23 28 37 ...
output:
44 58 46 64 57 64 43 66 46 52 57 61 46 53 73 39 53 54 42 43
result:
ok 20 lines
Test #5:
score: 10
Accepted
time: 0ms
memory: 1260kb
input:
1 1000 93 758062633 88 981601925 22 28054989 72 269036456 41 161626551 15 521363191 3 244982120 50 2...
output:
20
result:
ok single line: '20'
Test #6:
score: 10
Accepted
time: 0ms
memory: 1260kb
input:
1 1000 223444244 49 154763608 49 914282513 57 594690778 49 46129939 20 592083152 16 459436308 39 650...
output:
534391186
result:
ok single line: '534391186'
Test #7:
score: 10
Accepted
time: 345ms
memory: 2056kb
input:
2 53954 706803678 802362985 892644371 953855359 196462821 817301757 409460796 773943961 488763959 40...
output:
497979099 497530880
result:
ok 2 lines
Test #8:
score: 10
Accepted
time: 86ms
memory: 2008kb
input:
2 34643 15 50 98 93 77 31 43 84 90 6 24 14 37 73 29 43 9 4 8 14 31 91 97 72 23 73 68 70 51 78 2 19 1...
output:
50 50
result:
ok 2 lines
Test #9:
score: 10
Accepted
time: 155ms
memory: 2744kb
input:
1 100000 93 758062633 88 981601925 22 28054989 72 269036456 41 161626551 15 521363191 3 244982120 50...
output:
23
result:
ok single line: '23'
Test #10:
score: 10
Accepted
time: 279ms
memory: 2816kb
input:
1 100000 223444244 49 154763608 49 914282513 57 594690778 49 46129939 20 592083152 16 459436308 39 6...
output:
499790184
result:
ok single line: '499790184'
Extra Test:
score: 0
Extra Test Passed