QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#85121#5235. Podwyżki [B]anhduc27010 321ms55200kbC++233.2kb2023-03-06 23:35:182023-03-06 23:35:21

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-03-06 23:35:21]
  • 评测
  • 测评结果:0
  • 用时:321ms
  • 内存:55200kb
  • [2023-03-06 23:35:18]
  • 提交

answer

/*
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimize("unroll-loops")
*/
#include<bits/stdc++.h>
using namespace std;
#define all(x) x.begin(), x.end()
#define len(x) ll(x.size())
#define eb emplace_back
#define PI 3.14159265359
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define MIN(v) *min_element(all(v))
#define MAX(v) *max_element(all(v))
#define BIT(x,i) (1&((x)>>(i)))
#define MASK(x) (1LL<<(x))
#define task "tnc"  
typedef long long ll;
const ll INF=1e18;
const int maxn=1e6+5;
const int mod=1e9+7;
const int mo=998244353;
using pi=pair<ll,ll>;
using vi=vector<ll>;
using pii=pair<pair<ll,ll>,ll>;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int n,k;
vector<int>vt;
vector<int>pos[maxn];
int ok[maxn];
int a[maxn];
int ok1[maxn];
int k1;
signed main()
{
	cin.tie(0),cout.tie(0)->sync_with_stdio(0);
    //freopen(task".inp" , "r" , stdin);
    //freopen(task".out" , "w" , stdout);
    cin>>n>>k;
    k1=k;
    for(int i=1;i<=n;i++){
    	cin>>a[i];
    	vt.pb(a[i]);
    }
    sort(vt.begin(),vt.end());
    vt.resize(distance(vt.begin(),unique(vt.begin(),vt.end())));
    for(int i=1;i<=n;i++){
    	a[i]=lower_bound(vt.begin(),vt.end(),a[i])-vt.begin();
    	pos[a[i]].pb(i);
    }
    // 0 2 1
    int ht=n;
    for(int i=len(vt)-1;i>=0;i--){
    	int q=pos[i][0];
    	if(k>=3 && q<ht){
    		ok[q]=1;
    		k--;
    		ok[q-1]=1;
    		if(q-1>=1)k--;
    		break;
    	}
    	else{
    		ok[q]=1;
    		k--;
    		ht--;
    	}
    }
    for(int i=1;i<n;i++){
    	if(k>1 && ok[i]==0){
    		ok[i]=1;
    		k--;
    	}
    }
    vector<int>ans;
    for(int i=1;i<=n;i++){
    	if(ok[i]==1){
    		ans.pb(i);
    	}
    }
    if(k==1){
    	cout<<"TAK\n";
    	for(auto v:ans){
    		cout<<v<<" ";
    	}
    	return 0;
    }
    ht=1;
    k=k1;
    ans.clear();
    memset(ok,0,sizeof(ok));
    for(int i=0;i<len(vt);i++){
    	int q=pos[i].back();
    	if(k>=2 && q==n){
    		ok[q-1]=1;
    		k--;
    		break;
    	}
    	if(k>=2 && q>ht){
    		ok[q-1]=1;
    		k--;
    		break;
    	}
    	else{
    		ok[q]=1;
    		k--;
    		ht++;
    	}
    }
    for(int i=1;i<n;i++){
    	if(k>1 && ok[i]==0){
    		ok[i]=1;
    		k--;
    	}
    }
    ans.clear();
    for(int i=1;i<=n;i++){
    	if(ok[i]==1){
    		ans.pb(i);
    	}
    }
    if(k==1){
    	cout<<"TAK\n";
    	for(auto v:ans){
			cout<<v<<" ";
    	}
    	return 0;
    }
    memset(ok,0,sizeof(ok));
    k=k1;
    int check=0;
    for(int i=1;i<n;i++){
    	if(i+1==n && a[i]>a[i+1] && k>2){
    		ok[i]=1;
    		k-=1;
    		check=1;
    	}
    	else if(a[i]>a[i+1] && k>3){
    		ok[i]=1;
    		ok[i+1]=1;
    		ok[i-1]=1;
    		k-=3;
    		check=1;
    	}
    }
    if(check==1){

    	for(int i=1;i<n;i++){
    		if(k>1 && ok[i]==0){
    			ok[i]=1;
    			k--;
    		}
    	}
    	ans.clear();
    	for(int i=1;i<=n;i++){
    		if(ok[i]==1){
    			ans.pb(i);
    		}
    	}
    	cout<<"TAK\n";
    	for(auto v:ans){
    		cout<<v<<" ";
    	}
    	return 0;
	}
    cout<<"NIE\n";
    return 0;
}


詳細信息

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 1
Accepted
time: 1ms
memory: 31400kb

input:

20 3
500000006 500000017 500000029 500000035 500000043 500000059 500000193 500000072 500000086 500000093 500000102 500000113 500000128 500000138 500000148 500000156 500000161 500000176 500000185 500000193

output:

TAK
6 7 

result:

ok good solution

Test #2:

score: -1
Wrong Answer
time: 7ms
memory: 32888kb

input:

19 3
500000005 500000018 500000026 500000034 500000043 500000053 500000065 500000076 500000087 500000099 500000108 500000117 500000005 500000139 500000149 500000151 500000161 500000179 500000187

output:

TAK
1 12 

result:

wrong answer bad solution

Subtask #2:

score: 0
Wrong Answer

Test #15:

score: 0
Wrong Answer
time: 0ms
memory: 33808kb

input:

513 3
500000008 500000018 500000028 500000031 500000049 500000057 500000068 500000073 500000088 500000096 500000109 500000117 500000121 500000135 500000149 500000155 500000162 500000175 500000183 500000193 500000206 500000215 500000221 500000239 500000244 500000256 500000265 500000279 500000289 5000...

output:

TAK
1 230 

result:

wrong answer bad solution

Subtask #3:

score: 0
Wrong Answer

Test #26:

score: 0
Wrong Answer
time: 4ms
memory: 32852kb

input:

1025 3
5 15 24 38 48 55 66 72 90 100 105 120 126 132 149 158 164 179 187 192 206 217 223 235 245 258 266 276 286 297 308 317 322 339 349 354 365 379 384 398 410 414 423 433 442 455 469 480 484 495 506 520 526 533 546 556 565 580 587 599 607 617 628 634 646 658 667 675 686 700 709 714 729 740 744 760...

output:

TAK
1 312 

result:

wrong answer bad solution

Subtask #4:

score: 0
Wrong Answer

Test #38:

score: 0
Wrong Answer
time: 4ms
memory: 33616kb

input:

1024 3
9 15 30 37 45 58 69 78 84 97 108 112 122 140 148 154 166 176 185 195 208 213 227 235 243 252 264 274 284 299 310 317 325 338 348 359 364 375 384 400 410 419 425 439 448 459 468 477 487 498 504 516 525 538 549 558 563 574 583 594 602 613 622 634 648 658 668 674 686 697 702 713 728 738 742 754 ...

output:

TAK
1 858 

result:

wrong answer bad solution

Subtask #5:

score: 0
Wrong Answer

Test #50:

score: 0
Wrong Answer
time: 235ms
memory: 49508kb

input:

500000 2
96733 385679 36496 58364 157924 262087 114368 369679 399487 243135 300007 400425 143873 238383 376606 221831 362277 5424 143882 7322 83891 13321 464051 2125 317534 223350 355391 142109 446781 2753 377049 387945 57663 418272 16684 482728 300347 313882 41088 40295 38933 317354 168907 234092 2...

output:

TAK
48767 

result:

wrong answer Jury's Answer: NIE; Your Answer: TAK

Subtask #6:

score: 0
Wrong Answer

Test #58:

score: 0
Wrong Answer
time: 87ms
memory: 54484kb

input:

500000 3
500000003 500000017 500000027 500000036 500000043 500000054 500000066 500000078 500000082 500000094 500000104 500000114 500000123 500000133 500000147 500000158 500000169 500000178 500000181 500000191 500000203 500000212 500000221 500000235 500000247 500000254 500000266 500000271 500000283 5...

output:

TAK
1 5105 

result:

wrong answer bad solution

Subtask #7:

score: 0
Wrong Answer

Test #67:

score: 1
Accepted
time: 36ms
memory: 39464kb

input:

200000 3
2 20 22 38 44 53 70 76 82 100 102 120 128 137 148 159 168 178 186 199 203 218 222 232 242 255 270 275 287 293 308 318 329 340 345 356 368 377 390 394 407 415 428 436 442 452 463 478 485 493 510 515 524 539 549 555 565 573 588 595 608 618 622 640 642 653 662 673 689 700 710 713 727 735 748 7...

output:

TAK
147546 147547 

result:

ok good solution

Test #68:

score: -1
Wrong Answer
time: 38ms
memory: 41280kb

input:

200000 3
4 19 25 36 47 57 65 76 89 97 104 112 129 137 148 152 169 176 183 196 208 217 224 239 245 259 270 276 287 294 303 318 326 335 346 359 368 373 390 398 407 420 424 440 447 460 470 474 484 500 504 515 526 536 544 559 563 573 589 594 602 612 629 637 642 655 663 680 689 693 708 713 725 737 750 75...

output:

TAK
1 1382 

result:

wrong answer bad solution

Subtask #8:

score: 0
Wrong Answer

Test #80:

score: 0
Wrong Answer
time: 42ms
memory: 43564kb

input:

262145 3
6 13 24 38 49 58 62 78 88 96 102 117 130 139 147 152 169 179 184 199 206 217 222 237 245 260 264 279 286 296 303 312 330 336 345 357 362 379 390 399 405 415 425 432 450 453 467 480 488 497 505 520 523 535 548 559 565 576 585 600 608 617 630 636 648 652 662 677 684 700 706 715 726 738 747 75...

output:

TAK
1 42092 

result:

wrong answer bad solution

Subtask #9:

score: 0
Wrong Answer

Test #92:

score: 1
Accepted
time: 43ms
memory: 41620kb

input:

262146 3
5 19 27 40 44 52 70 75 85 99 108 112 129 140 148 156 166 172 188 196 204 214 227 235 249 257 267 272 288 294 305 312 326 339 344 359 370 374 390 397 405 415 426 436 450 456 466 479 483 498 509 515 524 535 546 555 568 574 582 596 610 620 623 636 645 653 664 673 683 694 702 712 727 738 743 76...

output:

TAK
38377 38378 

result:

ok good solution

Test #93:

score: -1
Wrong Answer
time: 81ms
memory: 50324kb

input:

400000 3
6 13 24 38 49 58 62 78 88 96 102 117 130 139 147 152 169 179 184 199 206 217 222 237 245 260 264 279 286 296 303 312 330 336 345 357 362 379 390 399 405 415 425 432 450 453 467 480 488 497 505 520 523 535 548 559 565 576 585 600 608 617 630 636 648 652 662 677 684 700 706 715 726 738 747 75...

output:

TAK
1 314714 

result:

wrong answer bad solution

Subtask #10:

score: 0
Wrong Answer

Test #106:

score: 1
Accepted
time: 92ms
memory: 50736kb

input:

499999 3
6 13 24 38 49 58 62 78 88 96 102 117 130 139 147 152 169 179 184 199 206 217 222 237 245 260 264 279 286 296 303 312 330 336 345 357 362 379 390 399 405 415 425 432 450 453 467 480 488 497 505 520 523 535 548 559 565 576 585 600 608 617 630 636 648 652 662 677 684 700 706 715 726 738 747 75...

output:

TAK
341906 341907 

result:

ok good solution

Test #107:

score: 0
Accepted
time: 259ms
memory: 51788kb

input:

500000 3
413423474 972924559 25444661 17117394 179085016 194118196 842074515 178130266 708851309 377794792 217671941 269350315 861734575 291683801 44740519 938114455 250385366 561222511 893930676 659766616 684694210 430331238 859267083 76748856 769147012 544643715 150954917 323496453 808859154 97589...

output:

TAK
372042 372043 

result:

ok good solution

Test #108:

score: 0
Accepted
time: 47ms
memory: 38504kb

input:

500000 3
1 1 2 3 2 2 2 2 1 1 3 1 2 2 3 3 2 2 1 1 3 3 1 3 3 1 3 3 1 2 1 1 2 1 1 1 3 3 3 2 3 3 2 3 2 3 1 3 2 3 3 3 2 3 3 3 3 2 3 3 3 1 3 3 2 3 1 1 2 1 2 1 2 3 1 1 3 3 3 3 3 1 2 3 2 2 3 3 2 3 3 2 3 1 1 1 3 2 1 3 2 1 1 1 1 3 1 1 3 3 3 2 1 2 2 3 3 2 1 2 3 1 2 1 3 2 3 2 3 1 1 1 2 2 3 3 2 2 2 3 2 3 3 3 2 3...

output:

TAK
3 4 

result:

ok good solution

Test #109:

score: 0
Accepted
time: 72ms
memory: 37760kb

input:

500000 4
999999995 999999992 999999995 999999999 999999992 999999995 999999996 999999997 999999990 999999993 999999990 999999994 999999996 999999997 999999997 999999991 999999993 999999993 999999994 999999990 999999993 999999992 999999990 999999999 999999997 999999998 1000000000 999999998 999999996 ...

output:

TAK
1 26 27 

result:

ok good solution

Test #110:

score: 0
Accepted
time: 321ms
memory: 51572kb

input:

500000 499980
235683 811932 511135 575238 768508 339387 527540 76931 742926 194504 828429 617666 294669 109164 204860 809488 285964 917019 81674 608196 983757 231990 140638 928406 247475 616999 141346 233801 409859 101045 127606 239900 824381 653042 956156 126362 778665 713481 966047 772822 943610 1...

output:

TAK
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 ...

result:

ok good solution

Test #111:

score: 0
Accepted
time: 94ms
memory: 55088kb

input:

500000 4
500000005 500000016 500000022 500000038 500000041 500000058 500000065 500000078 500000087 500000091 500000104 500000113 500000124 500000135 500000143 500000156 500000163 500000171 500000188 500000191 500000206 500000212 500000226 500000232 500000249 500000252 500000269 500000272 500000283 5...

output:

NIE

result:

ok no solution

Test #112:

score: 0
Accepted
time: 103ms
memory: 55200kb

input:

500000 4
100016 100008 100025 100035 100048 100058 100066 100074 100088 100091 100109 100114 100124 100139 100148 100153 100169 100174 100187 100191 100204 100217 100225 100239 100241 100254 100267 100274 100285 100293 100306 100316 100327 100338 100343 100357 100369 100373 100385 100395 100404 1004...

output:

TAK
1 2 3 

result:

ok good solution

Test #113:

score: -1
Wrong Answer
time: 72ms
memory: 40808kb

input:

500000 3
1 7 44 32 60 46 56 48 79 39 53 52 43 29 70 56 14 3 63 54 72 29 7 5 64 23 46 89 91 81 72 56 97 22 5 49 73 49 86 3 35 35 64 35 70 94 94 30 83 78 9 7 53 7 62 12 97 23 20 74 63 58 16 12 66 93 36 23 81 39 75 52 94 74 9 22 98 3 63 54 59 6 87 91 40 9 44 74 75 97 35 79 79 8 12 66 5 67 87 13 72 63 6...

output:

TAK
1 499844 

result:

wrong answer Jury's Answer: NIE; Your Answer: TAK