IT 정보/알고리즘(백준, BOJ)

[백준-BOJ] 2569

Dalyoung 2021. 2. 7. 22:41
728x90
반응형

www.acmicpc.net/problem/2569

 

2569번: 짐정리

첫째 줄에 짐칸의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 짐의 무게가 차례대로 주어진다. 짐칸의 수는 1,000이하의 자연수이며, 짐의 무게는 10,000이하의 자연수이다. 모든 짐의 무게는

www.acmicpc.net

#include<cstdio>
#include<algorithm>
using namespace std;
int n,ck[1000],r;
pair<int,int> p[1000];
int main() {
    scanf("%d", &n);
    for (int i = 0; i < n; i++) scanf("%d", &p[i].first), p[i].second = i;
    sort(p, p + n);
    for (int i = 0; i < n; i++) {
        if (ck[i]) continue;
        int c=0;
        for (int j = i; !ck[j]; j = p[j].second) {
            ck[j] = 1;
            r += p[j].first;
            c++;
        }
        r += min(p[0].first*(c + 1) + p[i].first, p[i].first*(c-2));
    }
    printf("%d", r);
    return 0;
}
728x90
반응형

'IT 정보 > 알고리즘(백준, BOJ)' 카테고리의 다른 글

[백준-BOJ] 2577  (0) 2021.02.08
[백준-BOJ] 2572  (0) 2021.02.08
[백준-BOJ] 2490  (0) 2021.02.07
[백준-BOJ] 2410  (0) 2021.02.06
[백준-BOJ] 2357  (0) 2021.02.06