QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#596828 | #9223. Data Determination | ucup-team1074 | AC ✓ | 368ms | 43784kb | C++23 | 2.5kb | 2024-09-28 16:31:46 | 2024-09-28 16:31:47 |
Judging History
answer
// Problem: G - Data Determination
// Contest: Virtual Judge - The 3rd Universal Cup. Stage 8: Cangqian + The 3rd Universal Cup. Stage 7: Warsaw
// URL: https://vjudge.net/contest/658753#problem/G
// Memory Limit: 1014 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define pb push_back
#define x first
#define y second
#define endl '\n'
const LL maxn = 4e05+7;
const LL N = 5e05+10;
const LL mod = 1e09+7;
const int inf = 0x3f3f3f3f;
const LL llinf = 5e18;
#define int long long
typedef pair<int,int>pl;
priority_queue<LL , vector<LL>, greater<LL> >mi;//小根堆
priority_queue<LL> ma;//大根堆
void solve()
{
int n , k , m;
cin >> n >> k >> m;
int ok = 0;
set<int>st;
int a[n];
for(int i = 0 ; i < n ; i ++){
cin >> a[i];
st.insert(a[i]);
}
map<int,int>mp;
map<int,int>pm;
int id = 0;
for(auto it : st){
mp[it] = ++id;
pm[id] = it;
}
vector<int>cnt(id + 5 , 0);
vector<int>pre(id + 5 , 0);
int b[n];
for(int i = 0 ; i < n ; i ++){
b[i] = mp[a[i]];
}
int t = mp[m];
for(int i = 0 ; i < n ; i++){
pre[b[i]]++;
cnt[b[i]]++;
}
for(int i = 1 ; i <= id ; i ++){
pre[i] += pre[i - 1];
}
if(k & 1){
int le = k / 2;
int ri = k / 2;
if(!mp.count(m)){
cout << "NIE\n";
}
else{
if(pre[mp[m] - 1] < le){
cnt[t] -= le - pre[t - 1];
}
if(pre[id] - pre[mp[m]] < ri){
cnt[t] -= ri - pre[id] + pre[t];
}
if(cnt[t] > 0){
cout <<"TAK\n";
}
else{
cout <<"NIE\n";
}
}
}
else{
int l = 1 , r = id;
while(l <= r){
while(l < r && pm[l] + pm[r] < m * 2){
l++;
}
if(pm[l] + pm[r] > m * 2){
r--;
continue;
}
else if(pm[l] + pm[r] == m * 2){
int le = k / 2 - 1;
int ri = k / 2 - 1;
int ok = 1;
if(l == r){
if( cnt[l] < 2 + max(0LL , le - pre[l - 1]) + max(0LL , ri - pre[id] + pre[r])){
ok = 0;
}
}
if(pre[l - 1] < le){
if(cnt[l] <= le - pre[l - 1]){
ok = 0;
}
}
if(pre[id] - pre[r] < ri){
if(cnt[r] <= ri - pre[id] + pre[r]){
ok = 0;
}
}
if(ok){
cout << "TAK\n";
return;
}
else{
r--;
}
}
else{
l++;
}
}
cout <<"NIE\n";
}
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cout.precision(10);
int t=1;
cin>>t;
while(t--)
{
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3796kb
input:
3 6 4 42 41 43 41 57 41 42 4 2 4 1 2 5 8 7 5 57 101 2 42 5 57 7 13
output:
TAK NIE NIE
result:
ok 3 lines
Test #2:
score: 0
Accepted
time: 368ms
memory: 43692kb
input:
1 200000 2 482043846 410684388 380438852 309193412 468460689 586281084 680820569 266819813 639025900 488292166 503516930 532292185 618277661 728546481 628339224 673945619 471325257 372807753 325778059 372151033 548358519 276494019 336701079 320784795 377493322 385262271 621712987 349634764 668994576...
output:
NIE
result:
ok single line: 'NIE'
Test #3:
score: 0
Accepted
time: 119ms
memory: 7736kb
input:
10 20000 3530 502140211 367996343 553577602 581694419 435810361 532394401 431613294 485360190 608191058 506969937 531905607 429252296 360241499 519031654 250454430 478548102 753825992 450326073 603766643 566036856 511634983 416622101 753825992 753825992 380511285 390746506 436237616 342529443 878920...
output:
NIE TAK TAK NIE TAK NIE NIE NIE NIE NIE
result:
ok 10 lines
Test #4:
score: 0
Accepted
time: 97ms
memory: 8220kb
input:
10 20000 6 569116309 533654855 569116308 512534907 569116310 500238175 562175605 569116308 569116310 489499020 543748669 569116309 526641247 511510060 504576222 569116309 569116310 569116308 569116310 569116309 569116308 569116309 569116310 569116308 569116310 569116309 569116308 465300463 569116308...
output:
TAK TAK NIE NIE NIE NIE NIE TAK NIE TAK
result:
ok 10 lines
Test #5:
score: 0
Accepted
time: 141ms
memory: 24948kb
input:
1 200000 99999 519401084 60561374 111262859 724696443 994449169 60561374 44352999 44352999 994449169 333890219 44352999 326562388 994449169 60561374 994449169 111262859 614556033 60561374 994449169 60561374 994449169 44352999 994449169 60561374 335786619 994449169 994449169 629087444 44352999 464308...
output:
TAK
result:
ok single line: 'TAK'
Test #6:
score: 0
Accepted
time: 48ms
memory: 3572kb
input:
10000 20 4 803793916 803793916 803793916 829654242 823538042 845455104 810621895 828304843 832321738 852423770 843342850 807940523 803793916 852745476 848104693 805326240 842124638 854328280 846662656 851682131 821969928 20 6 500022430 627268122 349233632 48722 48722 85853795 617231525 67926484 2957...
output:
TAK NIE NIE NIE NIE TAK NIE NIE NIE NIE NIE TAK TAK NIE TAK NIE TAK NIE NIE NIE TAK NIE TAK NIE TAK NIE NIE NIE NIE TAK TAK TAK TAK TAK TAK NIE NIE TAK NIE NIE NIE TAK NIE TAK NIE TAK NIE NIE NIE NIE TAK NIE TAK NIE TAK NIE TAK TAK NIE TAK NIE NIE NIE TAK TAK NIE TAK TAK NIE NIE NIE TAK TAK TAK NIE ...
result:
ok 10000 lines
Test #7:
score: 0
Accepted
time: 9ms
memory: 3636kb
input:
9009 6 1 497997812 497997809 497997809 497997810 497997811 497997814 497997815 6 4 670159867 670159866 670159867 670159868 670159869 670159869 670159869 6 3 253555654 253555652 253555652 253555655 253555655 253555657 253555657 5 4 58025801 58025798 58025798 58025801 58025801 58025804 6 6 485459580 4...
output:
NIE NIE NIE TAK NIE TAK NIE NIE NIE TAK NIE NIE NIE NIE NIE TAK NIE NIE TAK TAK NIE NIE NIE NIE NIE TAK NIE TAK TAK TAK NIE TAK TAK NIE TAK TAK TAK NIE TAK NIE NIE TAK NIE NIE NIE NIE TAK TAK NIE NIE NIE TAK NIE NIE NIE TAK NIE NIE NIE TAK NIE TAK NIE NIE TAK NIE NIE TAK TAK NIE NIE NIE TAK TAK TAK ...
result:
ok 9009 lines
Test #8:
score: 0
Accepted
time: 0ms
memory: 3856kb
input:
3 6 4 42 41 43 41 57 41 42 4 2 4 1 2 5 8 7 5 57 101 2 42 5 57 7 13
output:
TAK NIE NIE
result:
ok 3 lines
Test #9:
score: 0
Accepted
time: 52ms
memory: 3880kb
input:
10000 15 11 577362636 853906699 724288307 721771617 669295825 532323824 462315891 770584933 664403918 622313695 855536438 576197575 452062477 461916887 677655327 467941618 20 4 496615390 311759642 561553634 497956018 290273756 450278249 414264327 522738759 389495270 437727207 478923024 302235857 444...
output:
NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE NIE ...
result:
ok 10000 lines
Test #10:
score: 0
Accepted
time: 9ms
memory: 6756kb
input:
1 200000 200000 500000001 1000000000 1000000000 2 2 2 2 2 2 2 2 1000000000 1000000000 2 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 2 2 1000000000 1000000000 1000000000 2 1000000000 2 2 2 1000000000 1000000000 2 1000000000 1000000000 2 1000000000 2 2 2 2 2 1000000000 2 2 2 2 10...
output:
TAK
result:
ok single line: 'TAK'
Test #11:
score: 0
Accepted
time: 42ms
memory: 3588kb
input:
10000 21 19 416871649 416871644 416871643 416871647 416871649 416871643 416871649 416871647 416871647 416871648 416871647 416871649 416871647 416871649 416871644 416871648 416871645 416871646 416871649 416871644 416871644 416871643 21 15 903229525 903229538 903229529 903229530 903229514 903229523 90...
output:
NIE TAK NIE TAK NIE NIE NIE NIE TAK TAK NIE NIE TAK TAK TAK NIE TAK NIE NIE TAK TAK NIE NIE TAK NIE TAK TAK TAK TAK NIE NIE TAK NIE NIE TAK NIE TAK NIE TAK TAK TAK NIE TAK NIE NIE NIE TAK NIE TAK NIE NIE NIE TAK TAK NIE NIE NIE NIE TAK NIE TAK TAK NIE NIE NIE NIE NIE NIE NIE TAK TAK TAK NIE TAK NIE ...
result:
ok 10000 lines
Test #12:
score: 0
Accepted
time: 50ms
memory: 3912kb
input:
1000 200 1 688625450 835458282 721485563 559368028 597343263 833554820 645015846 721102591 782660889 847936061 553797517 507359606 517210915 668582925 509780908 643530349 812745285 710895873 771770749 782193167 687565711 740782922 565266685 611088639 644295864 715717132 875100782 864128846 643462149...
output:
NIE TAK NIE NIE TAK NIE TAK TAK NIE NIE TAK NIE TAK TAK TAK NIE TAK TAK TAK TAK TAK TAK NIE TAK NIE NIE TAK TAK TAK TAK TAK TAK NIE NIE NIE NIE NIE TAK NIE TAK TAK TAK NIE NIE NIE TAK TAK NIE NIE NIE NIE NIE NIE NIE TAK NIE TAK NIE NIE TAK NIE TAK TAK TAK TAK NIE TAK TAK NIE NIE TAK NIE TAK NIE TAK ...
result:
ok 1000 lines
Test #13:
score: 0
Accepted
time: 48ms
memory: 3648kb
input:
10000 10 9 524514665 92161998 234568852 980231709 932059942 409932102 988075253 60954077 409932102 956867332 524514665 32 4 568069135 585684801 672673508 601979541 695241490 667411866 693572044 609696501 665154634 885538170 628886702 669568053 598856864 694555009 634099169 678771624 601101458 601798...
output:
TAK NIE TAK NIE NIE TAK NIE TAK NIE TAK NIE NIE TAK TAK TAK NIE NIE TAK NIE NIE NIE NIE NIE TAK TAK TAK NIE NIE NIE NIE TAK NIE TAK NIE NIE NIE NIE NIE NIE TAK TAK TAK NIE NIE NIE NIE TAK TAK TAK TAK NIE NIE NIE TAK NIE NIE NIE NIE TAK NIE NIE TAK NIE NIE TAK NIE NIE NIE TAK TAK TAK TAK TAK TAK NIE ...
result:
ok 10000 lines
Test #14:
score: 0
Accepted
time: 265ms
memory: 29664kb
input:
1 200000 100000 499999275 499999275 809958473 260490469 108850972 406446228 416879057 498677522 303494284 329132962 499999275 472714892 650204634 271872980 842366539 281841660 328110256 499999275 311958171 56085610 457233997 215028338 499999275 333652780 478030060 353319343 351820632 404680613 49999...
output:
NIE
result:
ok single line: 'NIE'
Test #15:
score: 0
Accepted
time: 7ms
memory: 3580kb
input:
6270 8 8 395469150 395469148 395469150 395469150 395469150 395469150 395469150 395469150 395469151 8 8 697072131 697072129 697072129 697072129 697072129 697072133 697072133 697072133 697072133 8 1 868367669 868367667 868367667 868367667 868367668 868367670 868367671 868367671 868367671 8 8 296567346...
output:
TAK TAK NIE NIE NIE TAK TAK NIE TAK NIE NIE TAK TAK NIE NIE TAK TAK NIE TAK TAK NIE NIE NIE TAK NIE TAK TAK NIE NIE TAK NIE NIE NIE TAK TAK TAK NIE TAK TAK TAK TAK TAK NIE NIE NIE TAK NIE NIE TAK TAK NIE NIE TAK NIE NIE NIE NIE NIE NIE NIE NIE TAK TAK TAK TAK TAK NIE TAK NIE TAK NIE NIE NIE NIE NIE ...
result:
ok 6270 lines
Test #16:
score: 0
Accepted
time: 247ms
memory: 39024kb
input:
1 200000 100001 500002272 512256864 674127263 767479794 707132757 500002272 581213412 722017588 518198474 559396280 935760326 710769776 871154388 655902590 585865272 857067700 901866962 500002272 900891073 697047977 325473550 680587320 118144455 555639507 513852651 775807215 549264983 37967882 60395...
output:
NIE
result:
ok single line: 'NIE'
Test #17:
score: 0
Accepted
time: 65ms
memory: 4680kb
input:
100 1171 1108 499931227 210925287 141557949 819374962 822642625 969457101 14149772 916597065 811861719 933877200 65739056 195078086 853723250 839616465 5329285 962625558 850551014 211194551 437628517 820319630 791455806 779299320 865662099 28877319 565177187 831460704 51569555 146775151 565177187 56...
output:
NIE NIE NIE NIE NIE NIE NIE TAK TAK NIE NIE NIE NIE TAK TAK TAK NIE TAK NIE TAK NIE NIE TAK TAK NIE TAK TAK NIE NIE NIE NIE NIE TAK TAK NIE TAK TAK TAK TAK TAK TAK NIE NIE NIE NIE TAK TAK NIE TAK NIE NIE TAK NIE TAK NIE TAK NIE TAK TAK NIE TAK TAK TAK NIE TAK TAK TAK TAK TAK NIE NIE TAK NIE TAK NIE ...
result:
ok 100 lines
Test #18:
score: 0
Accepted
time: 140ms
memory: 21832kb
input:
1 200000 100000 499999989 749999988 250000032 89329717 23169452 250000032 749999988 749999946 962512215 250000032 133305417 250000032 749999988 109860128 749999946 749999988 49768074 177638978 53880107 749999946 998937860 749999988 858505148 933944524 952002120 749999988 824300202 250000032 74999994...
output:
TAK
result:
ok single line: 'TAK'
Test #19:
score: 0
Accepted
time: 359ms
memory: 43784kb
input:
1 200000 2 292801452 176320012 278131222 427743653 524247785 311367960 205060852 363691042 299229477 242424321 316865982 63147617 93062842 170744177 337616816 501564804 189291502 521595436 252648830 205825583 82487432 287938645 515487527 323753485 480686811 535596966 434628708 181005527 414120093 45...
output:
TAK
result:
ok single line: 'TAK'
Test #20:
score: 0
Accepted
time: 228ms
memory: 29344kb
input:
1 200000 1 548140769 366140930 595979353 404880331 305509835 546014673 621336022 317943563 330729805 797207438 663666436 311937668 350052862 563137292 561328605 702094719 725586326 750419121 781461222 421696590 423035770 368115915 562689877 551317728 438433812 704440592 492707258 628610422 623069860...
output:
NIE
result:
ok single line: 'NIE'
Test #21:
score: 0
Accepted
time: 58ms
memory: 4024kb
input:
1000 47 6 485671430 663881541 547966041 577386692 727406851 567204498 573833912 558642796 750573398 731006772 672480661 749522054 642244454 756633710 677517705 781571810 763981907 753189693 636371949 649742706 558472650 577164553 533035429 677056586 549364561 705033802 563949289 668237161 598797021 ...
output:
NIE NIE TAK TAK NIE NIE NIE TAK TAK TAK TAK NIE TAK NIE TAK NIE TAK TAK NIE NIE TAK TAK NIE NIE NIE NIE TAK TAK NIE TAK TAK TAK NIE NIE TAK TAK NIE TAK TAK NIE NIE NIE NIE TAK NIE NIE NIE TAK TAK TAK NIE NIE TAK TAK NIE NIE TAK NIE NIE TAK NIE TAK TAK NIE NIE TAK NIE NIE TAK NIE TAK NIE NIE NIE TAK ...
result:
ok 1000 lines
Extra Test:
score: 0
Extra Test Passed