QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#124535 | #362. Sparklers | Adam_GS# | 0 | 1ms | 3720kb | C++17 | 1.5kb | 2023-07-15 05:07:26 | 2024-07-04 00:40:58 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef long double ld;
typedef long long ll;
#define rep(a, b) for(int a = 0; a < (b); ++a)
#define st first
#define nd second
#define pb push_back
#define all(a) a.begin(), a.end()
const ld EPS=1e-12;
const ll INF=1e9+7;
const int LIM=1e5+7;
ll T[LIM], n, k, t;
bool check(ll s) {
vector<ld>A, B;
A.pb(t);
for(int i=k; i<n-1; ++i) {
A.pb(-(ld)T[i]/(ld)(2*s));
A.pb(t);
}
for(int i=k-1; i>=0; --i) {
B.pb(-(ld)T[i]/(ld)(2*s));
B.pb(t);
}
int la=0, lb=0, akta=0, aktb=0;
ld sum=0, suma=0, sumb=0;
while(la<A.size() || lb<B.size()) {
bool ok=false;
while(akta<A.size() && suma+A[akta]+sum>-EPS) {
ok=true;
suma+=A[akta];
if(suma>-EPS) {
sum+=suma;
suma=0;
la=akta+1;
}
++akta;
}
while(aktb<B.size() && sumb+B[aktb]+sum>-EPS) {
ok=true;
sumb+=B[aktb];
if(sumb>-EPS) {
sum+=sumb;
sumb=0;
lb=aktb+1;
}
++aktb;
}
if(!ok) break;
}
if(akta<A.size() || aktb<B.size()) return false;
return suma+sumb+sum>-EPS;
}
ll solve(vector<ll>P) {
rep(i, n-1) T[i]=P[i+1]-P[i];
ll po=0, ko=INF;
while(po<ko) {
ll sr=(po+ko)/2;
if(check(sr)) ko=sr; else po=sr+1;
}
return po;
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
cin >> n >> k >> t; --k;
vector<ll>P(n);
rep(i, n) cin >> P[i];
ll ans=solve(P);
rep(i, n) P[i]=P[n-1]-P[i];
reverse(all(P));
k=n-k-1;
ans=min(ans, solve(P));
cout << ans << '\n';
}
詳細信息
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 20
Accepted
time: 1ms
memory: 3584kb
input:
10 9 2 0 1117660 2284171 3390084 3568342 4222750 5180454 6186411 6360445 6519656
output:
181102
result:
ok single line: '181102'
Test #2:
score: 20
Accepted
time: 0ms
memory: 3468kb
input:
3 2 1 0 368765 1493921
output:
373481
result:
ok single line: '373481'
Test #3:
score: 20
Accepted
time: 1ms
memory: 3564kb
input:
9 8 4 0 1970871 2488111 3723411 5581758 7596649 8984403 9989980 10451978
output:
168215
result:
ok single line: '168215'
Test #4:
score: 20
Accepted
time: 1ms
memory: 3720kb
input:
20 18 1 0 462590 635597 1653028 1731039 2632280 2993419 3958675 4824859 4923991 5874922 6721441 7856685 8109245 8187843 8916119 9662776 10617094 11598860 11759660
output:
477159
result:
ok single line: '477159'
Test #5:
score: 20
Accepted
time: 0ms
memory: 3536kb
input:
20 19 1 0 16714 600564 1738550 2860146 3233681 3470376 3511936 4127893 5089595 5771375 5923055 6712524 7645593 7839588 7939256 8270988 8365309 8565641 8764207
output:
242986
result:
ok single line: '242986'
Test #6:
score: 20
Accepted
time: 0ms
memory: 3528kb
input:
20 19 1 0 360130 416278 565928 1137578 1907790 2582414 3700996 4219574 4315031 4708493 5703532 6750886 7008779 7292334 7354499 8425871 8951795 9692673 9903623
output:
318641
result:
ok single line: '318641'
Test #7:
score: 20
Accepted
time: 1ms
memory: 3532kb
input:
20 3 1 0 497352 601758 1175884 1245741 1585758 1746236 2367513 2732420 2739779 3351827 3525038 4143423 4321819 5000239 5107430 5312137 5958753 6370846 6513352
output:
173188
result:
ok single line: '173188'
Test #8:
score: 20
Accepted
time: 1ms
memory: 3684kb
input:
20 7 1 0 416112 1276119 1776741 1971354 3051516 3964787 4752968 5114629 5456785 5783476 6450733 7492246 8117636 8726706 9380206 9424138 9680412 10381694 11143315
output:
394091
result:
ok single line: '394091'
Test #9:
score: 20
Accepted
time: 0ms
memory: 3472kb
input:
20 17 1 0 418275 1609767 2826602 4126911 5045015 5863900 5903447 6048863 6976925 7826789 8397913 8479522 9312544 9618482 9751692 10846799 12065875 12985857 14274374
output:
547554
result:
ok single line: '547554'
Test #10:
score: 20
Accepted
time: 1ms
memory: 3588kb
input:
20 5 1 0 636862 675532 1067405 2149723 2433765 3448119 4927611 5075453 6024114 6742671 7335495 8053680 9461089 10479891 11154362 11537902 11790723 12326305 13349359
output:
374282
result:
ok single line: '374282'
Test #11:
score: 20
Accepted
time: 0ms
memory: 3456kb
input:
20 9 1 0 253324 316843 568058 673961 952771 1319011 1398887 1748830 1895752 2246598 2269716 2344119 2451418 2690003 2985338 3065614 3143399 3495892 3568533
output:
124217
result:
ok single line: '124217'
Test #12:
score: 0
Wrong Answer
time: 1ms
memory: 3592kb
input:
20 11 1 0 51952 61227 162819 249127 306399 334761 382780 449122 509397 542856 610609 616723 637063 646745 686393 770737 862074 908186 946759
output:
25303
result:
wrong answer 1st lines differ - expected: '25317', found: '25303'
Subtask #2:
score: 0
Skipped
Dependency #1:
0%
Subtask #3:
score: 0
Skipped
Dependency #1:
0%