Submission #62332464


Source Code Expand

#include <bits/stdc++.h>
#define FOR(i, a, b) for (int i = a; i <= b; ++i)
#define ROF(i, a, b) for (int i = a; i >= b; --i)
#define all(x) x.begin(),x.end()
#define deSpace(x) cerr<<x<<' '
#define deEnter(x) cerr<<x<<'\n'

using namespace std;

typedef unsigned long long ll;
typedef unsigned long long ull;
typedef pair<ll,ll> pll;
typedef array<ll,3> arr;
typedef double DB;
const ll MAXN=static_cast<ll>(2e5)+10,MAXval=static_cast<ll>(1e18)+3;

ll N,M,A[5][MAXN];
struct Triple{
	ll val,i,j,k;
};
struct cmp{
	bool operator()(const Triple &a,const Triple &b) const{
		return a.val<b.val;
	}
};
struct cmpSet{
	bool operator()(const Triple &a,const Triple &b) const{
		if(a.val!=b.val) return a.val<b.val;
		if(a.i!=b.i) return a.i<b.i;
		if(a.j!=b.j) return a.j<b.j;
		if(a.k!=b.k) return a.k<b.k;
		return false;
	}
};
priority_queue<Triple,vector<Triple> ,cmp> pq;
set<Triple,cmpSet> vis;

ll f(ll i,ll j,ll k){
	ll res=0;
	res=A[1][i]*A[2][j]+A[1][i]*A[3][k]+A[2][j]*A[3][k];
	return res;
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin>>N>>M;
	FOR(i, 1, 3){
		FOR(j,1,N){
			cin>>A[i][j];
		}
		sort(&A[i][1],&A[i][N+1],greater<ll>());
	}
	ll rank=0;
	pq.push((Triple){f(1,1,1),1,1,1});
	while(!pq.empty()){
		++rank;
		// deSpace(pq.top().val);deSpace(pq.top().i);deSpace(pq.top().j);deEnter(pq.top().k);
		if(rank==M){
			cout<<pq.top().val<<'\n';
			return 0;
		}
		ll i=pq.top().i,j=pq.top().j,k=pq.top().k;
		pq.pop();
		if(vis.find((Triple){f(i+1,j,k),i+1,j,k})==vis.end() && i+1<=N){
			pq.push((Triple){f(i+1,j,k),i+1,j,k});
			vis.insert((Triple){f(i+1,j,k),i+1,j,k});
		}
		if(vis.find((Triple){f(i,j+1,k),i,j+1,k})==vis.end() && j+1<=N){
			pq.push((Triple){f(i,j+1,k),i,j+1,k});
			vis.insert((Triple){f(i,j+1,k),i,j+1,k});
		}
		if(vis.find((Triple){f(i,j,k+1),i,j,k+1})==vis.end() && k+1<=N){
			pq.push((Triple){f(i,j,k+1),i,j,k+1});
			vis.insert((Triple){f(i,j,k+1),i,j,k+1});
		}
		
	}
	return 0;
}
/*

*/

Submission Info

Submission Time
Task F - K-th Largest Triplet
User znzryb
Language C++ 17 (Clang 16.0.6)
Score 500
Code Size 2042 Byte
Status AC
Exec Time 830 ms
Memory 125696 KiB

Compile Error

./Main.cpp:50:3: warning: comparison of integers of different signs: 'int' and 'll' (aka 'unsigned long long') [-Wsign-compare]
                FOR(j,1,N){
                ^   ~   ~
./Main.cpp:2:40: note: expanded from macro 'FOR'
#define FOR(i, a, b) for (int i = a; i <= b; ++i)
                                     ~ ^  ~
./Main.cpp:15:39: warning: unused variable 'MAXval' [-Wunused-const-variable]
const ll MAXN=static_cast<ll>(2e5)+10,MAXval=static_cast<ll>(1e18)+3;
                                      ^
2 warnings generated.

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 61
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt, 01_test_37.txt, 01_test_38.txt, 01_test_39.txt, 01_test_40.txt, 01_test_41.txt, 01_test_42.txt, 01_test_43.txt, 01_test_44.txt, 01_test_45.txt, 01_test_46.txt, 01_test_47.txt, 01_test_48.txt, 01_test_49.txt, 01_test_50.txt, 01_test_51.txt, 01_test_52.txt, 01_test_53.txt, 01_test_54.txt, 01_test_55.txt, 01_test_56.txt, 01_test_57.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 3544 KiB
00_sample_01.txt AC 1 ms 3540 KiB
00_sample_02.txt AC 1 ms 3468 KiB
01_test_00.txt AC 1 ms 3404 KiB
01_test_01.txt AC 38 ms 8500 KiB
01_test_02.txt AC 167 ms 22456 KiB
01_test_03.txt AC 225 ms 27284 KiB
01_test_04.txt AC 392 ms 42208 KiB
01_test_05.txt AC 432 ms 46248 KiB
01_test_06.txt AC 451 ms 47104 KiB
01_test_07.txt AC 350 ms 38620 KiB
01_test_08.txt AC 466 ms 48832 KiB
01_test_09.txt AC 422 ms 45620 KiB
01_test_10.txt AC 475 ms 49176 KiB
01_test_11.txt AC 556 ms 96384 KiB
01_test_12.txt AC 575 ms 87276 KiB
01_test_13.txt AC 500 ms 112404 KiB
01_test_14.txt AC 530 ms 123324 KiB
01_test_15.txt AC 529 ms 101596 KiB
01_test_16.txt AC 520 ms 101632 KiB
01_test_17.txt AC 614 ms 99888 KiB
01_test_18.txt AC 551 ms 101636 KiB
01_test_19.txt AC 523 ms 101568 KiB
01_test_20.txt AC 522 ms 101620 KiB
01_test_21.txt AC 494 ms 93332 KiB
01_test_22.txt AC 525 ms 101572 KiB
01_test_23.txt AC 455 ms 49248 KiB
01_test_24.txt AC 459 ms 49040 KiB
01_test_25.txt AC 605 ms 112488 KiB
01_test_26.txt AC 597 ms 112592 KiB
01_test_27.txt AC 662 ms 123300 KiB
01_test_28.txt AC 663 ms 123308 KiB
01_test_29.txt AC 506 ms 116480 KiB
01_test_30.txt AC 507 ms 116560 KiB
01_test_31.txt AC 621 ms 123428 KiB
01_test_32.txt AC 664 ms 123380 KiB
01_test_33.txt AC 510 ms 116132 KiB
01_test_34.txt AC 512 ms 116248 KiB
01_test_35.txt AC 546 ms 116512 KiB
01_test_36.txt AC 546 ms 116436 KiB
01_test_37.txt AC 462 ms 92192 KiB
01_test_38.txt AC 459 ms 92160 KiB
01_test_39.txt AC 528 ms 116436 KiB
01_test_40.txt AC 497 ms 116156 KiB
01_test_41.txt AC 637 ms 123380 KiB
01_test_42.txt AC 494 ms 116500 KiB
01_test_43.txt AC 611 ms 123300 KiB
01_test_44.txt AC 595 ms 123288 KiB
01_test_45.txt AC 530 ms 123288 KiB
01_test_46.txt AC 830 ms 125696 KiB
01_test_47.txt AC 68 ms 8172 KiB
01_test_48.txt AC 1 ms 3372 KiB
01_test_49.txt AC 360 ms 42016 KiB
01_test_50.txt AC 440 ms 48828 KiB
01_test_51.txt AC 430 ms 48224 KiB
01_test_52.txt AC 455 ms 101468 KiB
01_test_53.txt AC 468 ms 101388 KiB
01_test_54.txt AC 503 ms 101480 KiB
01_test_55.txt AC 239 ms 67224 KiB
01_test_56.txt AC 239 ms 67132 KiB
01_test_57.txt AC 235 ms 67144 KiB