QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#207364#6770. Antsveg#AC ✓642ms13288kbC++231.8kb2023-10-08 14:45:472023-10-08 14:45:47

Judging History

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

  • [2023-10-08 14:45:47]
  • 评测
  • 测评结果:AC
  • 用时:642ms
  • 内存:13288kb
  • [2023-10-08 14:45:47]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;

#define ll long long

const int maxn=1e6+10;

int a[maxn];
int d[maxn];

int main()
{
	int n,A,B;ll left,right;
	scanf("%d%d%d",&n,&A,&B);
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	for(int i=1;i<=n;i++) scanf("%d",&d[i]);
	int len=2000000002;
	left=0,right=2.1e18;
	while(left<=right)
	{
		ll mid=left+right>>1,cnt=0;
		for(int i=1;i<=n;i++)
			if(d[i]) cnt+=(mid+a[i])/len;
			else cnt+=(mid+len-a[i])/len;
		if(cnt>=A) right=mid-1;
		else left=mid+1;
	}
	ll ta=left;
	left=0,right=2.1e18;
	while(left<=right)
	{
		ll mid=left+right>>1,cnt=0;
		for(int i=1;i<=n;i++)
			if(!d[i]) cnt+=(mid+len/2-a[i])/len;
			else cnt+=(mid+len/2+a[i])/len;
		if(cnt>=B) right=mid-1;
		else left=mid+1;
	}
	ll tb=left;
	if(ta<=tb)
	{
		vector<int> vec;
		int ans=0;
		for(int i=1;i<=n;i++)
		{
			if(!d[i])
			{
				B-=(ta+len/2-a[i])/len;
				a[i]=(ta+len/2-a[i])%len;
			}
			else
			{
				B-=(ta+len/2+a[i])/len;
				a[i]=(ta+len/2+a[i])%len;
			}
			if(a[i]>=len/2) vec.push_back(a[i]);
			else ans=max(ans,len/2-a[i]);
		}
		sort(vec.begin(),vec.end());
		if(!vec.size()) printf("%lld\n",ta+ans);
		else if(B<=0) printf("%lld\n",ta+max(ans,len-vec[0]));
		else printf("%lld\n",ta+len-vec[max(0,(int)(vec.size()-B))]+len/2);
	}
	else
	{
		vector<int> vec;
		int ans=0;
		for(int i=1;i<=n;i++)
		{
			if(!d[i])
			{
				A-=(tb+len-a[i])/len;
				a[i]=(tb+len-a[i])%len;
			}
			else
			{
				A-=(tb+a[i])/len;
				a[i]=(tb+a[i])%len;
			}
			if(a[i]>=len/2) vec.push_back(a[i]);
			else ans=max(ans,len/2-a[i]);
		}
		sort(vec.begin(),vec.end());
		if(!vec.size()) printf("%lld\n",tb+ans);
		else if(A<=0) printf("%lld\n",tb+max(ans,len-vec[0]));
		else printf("%lld\n",tb+len-vec[max(0,(int)(vec.size()-A))]+len/2);
	}
	return 0;
}

这程序好像有点Bug,我给组数据试试?

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 5880kb

input:

2 2 4
2 3
0 1

output:

4000000001

result:

ok single line: '4000000001'

Test #2:

score: 0
Accepted
time: 1ms
memory: 6156kb

input:

1 1000000000 1000000000
500000000
0

output:

2000000002500000000

result:

ok single line: '2000000002500000000'

Test #3:

score: 0
Accepted
time: 1ms
memory: 5864kb

input:

1 1000000000 500000000
500000000
1

output:

1000000001500000001

result:

ok single line: '1000000001500000001'

Test #4:

score: 0
Accepted
time: 1ms
memory: 5836kb

input:

1 500000000 1000000000
500000000
0

output:

1000000001500000000

result:

ok single line: '1000000001500000000'

Test #5:

score: 0
Accepted
time: 642ms
memory: 13124kb

input:

999963 1000000000 1000000000
516 793 2609 2721 3010 3378 4494 6294 7719 9298 9582 10021 10255 13552 16357 16771 16864 18824 19006 19162 19583 22099 22970 23637 25760 26962 29349 31140 34093 34398 35622 35765 35868 35899 36213 37137 38062 43181 43361 44347 46328 48145 48188 49187 50303 50873 52999 53...

output:

2001074431727

result:

ok single line: '2001074431727'

Test #6:

score: 0
Accepted
time: 638ms
memory: 13156kb

input:

999941 999999994 45
453 2109 2238 3231 3840 4691 4822 5559 6256 6442 6920 8050 8105 9675 9797 13409 13737 15144 15475 15587 16603 17043 18103 24109 24567 25049 25689 26332 26874 27134 27681 28947 29323 32220 32520 33158 34724 35001 36274 36281 39527 39874 42474 43062 44818 44970 46621 47409 47725 51...

output:

2000108375

result:

ok single line: '2000108375'

Test #7:

score: 0
Accepted
time: 639ms
memory: 13120kb

input:

999954 999999992 999999995
272 628 870 1898 4875 5419 6672 7510 8281 8480 10628 11082 11578 11704 12214 19522 19961 20795 23423 24662 25350 26316 26502 26857 27852 28108 29041 29612 30217 30535 30923 39387 40976 41786 43389 43419 44165 45018 45713 46758 47369 47820 48741 49662 49744 50338 50621 5254...

output:

2001092829852

result:

ok single line: '2001092829852'

Test #8:

score: 0
Accepted
time: 642ms
memory: 13236kb

input:

999932 999999990 999999998
767 1018 1122 4926 5456 6067 6360 10727 11947 13239 13448 14168 15069 16955 17691 18246 18317 18558 19064 20330 21643 22170 23288 24259 26044 26061 26281 26459 26851 27319 27515 27941 29256 30281 30478 30649 31271 33013 33573 33954 34554 34880 37476 38058 41350 41720 41987...

output:

2001136539839

result:

ok single line: '2001136539839'

Test #9:

score: 0
Accepted
time: 635ms
memory: 13288kb

input:

999978 96 999999991
597 1007 2312 2597 3025 3410 4879 5383 7284 9320 9519 10185 11052 11067 11161 12073 14258 14773 15803 17308 17411 19719 24899 25162 25737 27314 28146 28993 29374 29593 29781 31053 31437 33433 34309 36664 37525 38263 41140 43162 43556 44728 45312 48836 49037 50314 51097 51700 5216...

output:

2000225911

result:

ok single line: '2000225911'

Test #10:

score: 0
Accepted
time: 640ms
memory: 13228kb

input:

999956 999999996 999999993
200 3463 4333 5570 7107 8968 9380 11533 15286 15767 17969 18845 20264 22193 23283 23700 24335 24493 24871 26052 27077 27293 27780 28299 29436 29874 30149 30394 31504 34650 35577 35639 38236 38256 39038 39136 39503 39994 40259 41104 41710 44812 45908 46945 47060 47711 49202...

output:

2001088216866

result:

ok single line: '2001088216866'

Test #11:

score: 0
Accepted
time: 633ms
memory: 13140kb

input:

999969 41 999999994
1347 1679 3964 6473 7040 9664 10582 10874 11346 12413 12917 13477 13581 16344 16465 16698 16908 17687 17921 20724 21753 22203 22326 23340 24613 25269 25936 28029 28557 28880 31422 39124 42069 42902 43335 43946 44765 46265 46880 47563 48615 48721 50424 50885 50996 52665 53445 5412...

output:

2000085628

result:

ok single line: '2000085628'

Test #12:

score: 0
Accepted
time: 639ms
memory: 13288kb

input:

999947 999999995 999999992
176 688 1670 1770 2381 5132 6311 7913 8238 12291 17276 17552 17894 19483 19512 20273 21673 22264 22919 24572 25936 29238 29865 31502 31994 32722 36294 36816 37557 38162 38525 38824 39485 39940 40770 41595 42400 43037 43071 43520 43747 43996 44523 48093 48095 51409 51531 53...

output:

2001106795655

result:

ok single line: '2001106795655'

Test #13:

score: 0
Accepted
time: 1ms
memory: 6168kb

input:

11 1000000000 1000000000
50693326 64287416 146120903 221418321 236537210 384599687 470661796 591914724 684157773 898390709 958420789
0 0 1 1 0 0 0 0 0 0 1

output:

181818182960399862

result:

ok single line: '181818182960399862'

Test #14:

score: 0
Accepted
time: 1ms
memory: 5864kb

input:

39 999999994 45
2087506 16843338 45277106 46761498 105650419 125908043 140515506 150414369 155191459 202647942 233465964 268792718 274667941 279198849 286802932 396628655 405017626 407246545 421436316 443917727 451394766 503722503 519096230 527268921 536134606 579721198 642802746 646837311 674936674...

output:

4357197259

result:

ok single line: '4357197259'

Test #15:

score: 0
Accepted
time: 1ms
memory: 5868kb

input:

59 999999992 999999995
11308832 16233727 35937909 46718075 51380687 67590963 99235830 108369168 135993561 166967811 208182535 208427221 226582349 234173340 247483035 254020497 255361535 284875072 292418116 316284722 322595515 436362895 475357775 476927808 481175335 503158867 521365644 588586447 5910...

output:

33898306085278993

result:

ok single line: '33898306085278993'

Test #16:

score: 0
Accepted
time: 1ms
memory: 6160kb

input:

87 999999990 999999998
2886596 14483682 27692370 31800644 50018440 52410110 56945723 59267682 62152771 72992050 78218895 81685387 95637299 124321145 138628383 143672912 150020809 155605777 165091420 172306286 188451996 190264757 190739561 201406100 232930851 245485733 257812292 266089174 284660056 2...

output:

22988506796352077

result:

ok single line: '22988506796352077'

Test #17:

score: 0
Accepted
time: 1ms
memory: 5860kb

input:

11 96 999999991
314305867 342102981 350635050 469496529 699021890 730593611 787982418 812959730 814024114 815487777 857896659
0 0 1 0 1 0 1 1 1 1 1

output:

19187040290

result:

ok single line: '19187040290'

Test #18:

score: 0
Accepted
time: 1ms
memory: 5832kb

input:

39 999999996 999999993
29599937 79866982 108887129 135814914 141752547 189488390 211655411 288981803 344833277 358502890 366732948 373282330 398630021 409828915 417008713 479275454 480642952 485781288 502303728 564718673 593942770 603966291 632939232 657489855 667584659 690430685 738379364 753287868...

output:

51282052120362147

result:

ok single line: '51282052120362147'

Test #19:

score: 0
Accepted
time: 1ms
memory: 5880kb

input:

59 41 999999994
26193206 31134588 33207011 43451392 73353079 133595743 145434750 223207847 231445627 235369723 250896470 267881918 295641139 314103356 346613315 405752009 410083856 417168695 418600362 439147697 509798823 541362608 544067926 555835767 558818191 587219021 597659626 620276118 622701955...

output:

3153870758

result:

ok single line: '3153870758'

Test #20:

score: 0
Accepted
time: 1ms
memory: 5900kb

input:

87 999999995 999999992
3494229 6516358 12204822 24154513 34423724 37401379 43454915 92586095 107669581 123074777 147499872 148645775 180581218 188696560 192523526 197547597 198076752 213019511 229991740 257169690 259084035 306410490 335796176 339749026 343857831 347540017 355185760 355382732 3594430...

output:

22988506679130676

result:

ok single line: '22988506679130676'