-
백준 3985번 : 롤 케이크 (C 언어)c c++ 언어 공부 2023. 10. 10. 09:42
https://www.acmicpc.net/problem/3985
3985번: 롤 케이크
첫째 줄에 롤 케이크의 길이 L (1 ≤ L ≤ 1000)이 주어진다. 둘째 줄에는 방청객의 수 N (1 ≤ N ≤ 1000)이 주어진다. 다음 N개 줄에는 각 방청객 i가 종이에 적어낸 수 Pi와 Ki가 주어진다. (1 ≤ Pi ≤ Ki
www.acmicpc.net
Code:
1234567891011121314151617181920212223242526272829303132333435363738#include <stdio.h>#include <limits.h>int main() {int l;int n;int p, k;int max = INT_MIN;int expect = 0;int number_e = 0;int number = 0;int arr[1001] = { 0, };scanf("%d %d", &l, &n);for (int i = 0; i < n; i++){scanf("%d %d", &p, &k);int count = 0;for (int j = p; j <= k; j++){if (arr[j] == 0){arr[j] = 2;count++;}}if (expect < (k - p + 1)){expect= (k - p + 1);number_e = i + 1;}if (max < count){max = count;number = i + 1;}}printf("%d\n%d", number_e, number);}cs 문제 설명:
주어진 롤 케이크의 길이 L과 방청객의 수 N, 각 방청객이 원하는 조각의 범위 P와 K가 주어집니다. 각 방청객은 원하는 조각의 시작과 끝을 P와 K로 지정하여 케이크를 요청합니다. 각 방청객에게는 요청한 범위 내에서 아직 번호가 적혀있지 않은 조각을 순서대로 번호를 매겨줍니다. 이때, 가장 많은 조각을 받을 것으로 기대한 방청객의 번호와 실제로 가장 많은 조각을 받은 방청객의 번호를 구해야 합니다.
주요 로직:
- 롤 케이크의 길이와 방청객의 수를 입력받습니다.
- 각 방청객의 요청 범위를 입력받고, 해당 조각에 대해 아직 번호가 적혀있지 않은 조각의 수를 카운트하면서 번호를 매겨줍니다.
- 각 방청객에 대해 가장 많은 조각을 받을 것으로 기대한 방청객의 번호와 실제로 가장 많은 조각을 받은 방청객의 번호를 구합니다.
- 결과를 출력합니다.
'c c++ 언어 공부' 카테고리의 다른 글
백준 3023번 : 마술사 이민혁 (C 언어) (1) 2023.10.14 백준 14248번 : 점프 점프 (C 언어) (1) 2023.10.12 백준 2460번 : 지능형 기차2 (C 언어) (1) 2023.10.09 백준 2455번 : 지능형 기차 (C 언어) (0) 2023.10.09 백준 1350번 : 진짜 공간 (C 언어) (1) 2023.10.08