Submission

Status:

[PP][PP][PP][PP][-S][-S][-S][-S][-S][-S]

Subtask/Task Score:

{10/10}{10/10}{10/10}{10/10}{0/10}{0/10}{0/10}{0/10}{0/10}{0/10}

Score: 40

User: FakeAnutin

Problemset: รถขนส่ง

Language: cpp

Time: 0.004 second

Submitted On: 2026-10-09 13:49:07

#include <bits/stdc++.h>
using namespace std;
int main(){
	int oto[301];
	int ott[301];
	int otn[301];
	int ttn[301];
	int m,n; cin>>m>>n;
	for(int i=1;i<=m;i++){
		cin>>oto[i];
	}
	for(int i=1;i<=m;i++){
		cin>>ott[i];
	}
	for(int i=1;i<=m;i++){
		cin>>otn[i];
	}
	for(int i=1;i<=m;i++){
		cin>>ttn[i];
	}
	sort(oto + 1,oto + m + 1);
	sort(ott + 1,ott + m + 1);
	sort(otn + 1,otn + m + 1);
	sort(ttn + 1,ttn + m + 1);
    vector<int> da;
    for(int i=1;i<=m;i++){
		int k=oto[i] + otn[m-i+1];
		da.push_back(k);
	}
	for(int i=1;i<=m;i++){
		int k=ott[i] + ttn[m-i+1];
		da.push_back(k);
	}
	sort(da.begin(),da.end());
	if(n == 2*m){
	cout<<da[n-1];}
	else if(n == 1){
		cout<<min(oto[1]+otn[1],ott[1]+ttn[1]);
	}else{
		cout<<da[n-3];
	}
}