QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#124534#362. SparklersAdam_GS#0 0ms3808kbC++171.5kb2023-07-15 05:06:352024-07-04 00:40:55

Judging History

你现在查看的是最新测评结果

  • [2024-07-04 00:40:55]
  • 评测
  • 测评结果:0
  • 用时:0ms
  • 内存:3808kb
  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-07-15 05:06:35]
  • 提交

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-9;
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';
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 20
Accepted
time: 0ms
memory: 3808kb

input:

10 9 2
0
1117660
2284171
3390084
3568342
4222750
5180454
6186411
6360445
6519656

output:

181102

result:

ok single line: '181102'

Test #2:

score: 0
Accepted
time: 0ms
memory: 3808kb

input:

3 2 1
0
368765
1493921

output:

373481

result:

ok single line: '373481'

Test #3:

score: 0
Accepted
time: 0ms
memory: 3616kb

input:

9 8 4
0
1970871
2488111
3723411
5581758
7596649
8984403
9989980
10451978

output:

168215

result:

ok single line: '168215'

Test #4:

score: 0
Accepted
time: 0ms
memory: 3524kb

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: 0
Accepted
time: 0ms
memory: 3808kb

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: 0
Accepted
time: 0ms
memory: 3520kb

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: 0
Accepted
time: 0ms
memory: 3612kb

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: 0
Accepted
time: 0ms
memory: 3772kb

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: 0
Accepted
time: 0ms
memory: 3588kb

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: 0
Accepted
time: 0ms
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: 0
Accepted
time: 0ms
memory: 3524kb

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: -20
Wrong Answer
time: 0ms
memory: 3808kb

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%