알고리즘/BOJ

백준 11973번 Angry Cows(Silver)

꾸준함. 2018. 9. 23. 14:20

문제 링크입니다: https://www.acmicpc.net/problem/11973


모든 소를 하나 하나 터뜨려보면서 최대 연쇄폭파 횟수를 업데이트 해주면 되는 문제였습니다.


#include <iostream>

#include <algorithm>

using namespace std;

 

const int MAX = 50000;

 

int N, K;

int hay[MAX];

 

int main(void)

{

        ios_base::sync_with_stdio(0);

        cin.tie(0);

        cin >> N >> K;

 

        for (int i = 0; i < N; i++)

                 cin >> hay[i];

 

        sort(hay, hay + N);

        //폭파 범위

        int range = 1;

        while (1)

        {

                 int cnt = 0, idx = 0;

                 while (1)

                 {

                         //K마리의 소 선택 혹은 모든 소를 다 터뜨림

                         if (cnt == K || idx == N)

                                 break;

                         int limit = hay[idx] + 2 * range; //-range ~ range

                         while (hay[idx] <= limit && idx < N)

                                 idx++;

                         cnt++;

                 }

 

                 //모든 소를 다 터뜨렸을 경우

                 if (idx == N)

                 {

                         cout << range << "\n";

                         break;

                 }

                 range++;

        }

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 12934번 턴 게임  (0) 2018.09.23
백준 11974번 Subsequences Summing to Sevens  (0) 2018.09.23
백준 11977번 Angry Cows(Bronze)  (0) 2018.09.23
백준 11976번 Promotion Counting  (0) 2018.09.23
백준 2799번 블라인드  (2) 2018.09.22