티스토리 뷰

PS

백준 2262. 토너먼트 만들기

tose33 2021. 8. 27. 14:47

https://www.acmicpc.net/problem/2262

 

2262번: 토너먼트 만들기

월드시에서는 매년 n명의 사람들이 모여 월드 크래프트라는 게임의 토너먼트 대회를 치른다. 이 게임은 특성상 실력만이 승패를 좌우하기 때문에, 아무리 실력이 엇비슷한 사람이 시합을 치러

www.acmicpc.net

 

랭킹이 가장 낮은 선수를 찾아 양쪽 선수중 랭킹이 더 가까운 선수와 붙이면된다.

랭킹이 가장 낮은 선수를 찾을때는 랭킹이 같은 경우는 없으므로 n부터 시작해서 n-1,n-2,... 를 찾으면된다.

 

input:

1 6 2 5 3 4

 

1 6 2 5 3 4  // 6-2=4

1 2 5 3 4    // 5-3=2

1 2 3 4      //  4-3=1

1 2 3        //  3-2=1

1 2           // 2-1=1

 

4+2+1+1+1=9

 

 

#include <iostream>
#include <vector>
using namespace std;

int n;
vector<int> v;

int main()
{
    cin >> n;
    v.resize(n);
    for(int i = 0; i < n; i++)
        cin >> v[i];

    int target = n;
    int sum = 0;

    while(target > 1)
    {
        for(int i = 0; i < v.size(); i++)
        {
            if(v[i] == target)
            {
                if(i == 0)
                    sum += v[i]-v[i+1];
                else if(i == v.size()-1)
                    sum += v[i]-v[i-1];
                else
                {
                    if(v[i-1] < v[i+1])
                        sum += v[i]-v[i+1];
                    else
                        sum += v[i]-v[i-1];
                }

                // 탈락처리
                target--;
                v.erase(v.begin()+i);
                break;
            }
        }
    }
    cout << sum;
}

'PS' 카테고리의 다른 글

백준 13164. 행복 유치원  (0) 2021.08.28
백준 2872. 우리집엔 도서관이 있어  (0) 2021.08.28
백준 14241. 슬라임 합치기  (0) 2021.08.26
백준 15922. 아우으 우아으이야!!  (0) 2021.08.26
백준 12018. Yonsei TOTO  (0) 2021.08.26
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함