https://codeforces.com/contest/2229/problem/B
어떠한 최적해가 존재하는데, 어떤 인덱스 i에 대해서 ai>bi라고 해봅시다. 이 상황에서 ai와 bi를 swap해도 결괏값이 감소하지 않음을 보일 수 있습니다. 그러므로 항상 a,b중 b에 더 큰 값이, a에 더 작은 값이 들어가는 경우가 최적의 경우임을 알 수 있습니다.
#include <iostream>
#include <algorithm>
#define ll long long
using namespace std;
ll arr[101010]={0};
int main()
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
ll T;
cin>>T;
while (T--)
{
ll N;
cin>>N;
for (ll i=0;i<N;i++) cin>>arr[i];
ll sum=0,mx=0,x;
for (ll i=0;i<N;i++)
{
cin>>x;
if (x<arr[i]) swap(x,arr[i]);
sum+=x;
mx=max(mx,arr[i]);
}
cout<<sum+mx<<"\n";
}
}

| 가뭄 (Drought) (JUNGOL 5346) (0) | 2026.05.31 |
|---|---|
| 최대 부분수열 (JUNGOL 4188) (0) | 2026.05.31 |
| Slimes on a Line (CF R 1100 Div.1 + Div.2 - A) (0) | 2026.05.30 |
| 원 (JUNGOL 1255) (0) | 2026.05.29 |
| 연결되는 순간 (JUNGOL 3870) (0) | 2026.05.29 |