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 14:14:56
#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);
if(n == 2*m){
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());
cout<<da[n-1];}
else if(n == 1){
cout<<min(oto[1]+otn[1],ott[1]+ttn[1]);
}else{
vector<int> da;
for(int i=1;i<=n;i++){
int k=oto[i] + otn[n-i+1];
da.push_back(k);
}
for(int i=1;i<=n;i++){
int k=ott[i] + ttn[n-i+1];
da.push_back(k);
}
sort(da.begin(),da.end());
cout<<da[n-1];
}
}