문제 출처 : https://www.acmicpc.net/problem/17521
이 문제는 예전 ICPC 출전하였을때 다른 팀원이 풀고 내가 풀어보지 못한 문제였다.
그래프에서 모든 값을 알 수 있으니 높낮이의 아래와 위를 찾아서 계산을 해주면 되는 문제이다.
계산을 하면 할수록 값이 커져서 int 값을 초과할 수 있으니 long long int를 써야하는 문제이기도 하다.
아래는 해당 문제를 해결한 소스이다.
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
32
33
34
35
36
37
38
39
40
|
#include<stdio.h>
#pragma warning(disable:4996)
int arr[16];
int main()
{
int n;
int w;
int j;
int temp=0;
int save_min = 0;
int save_max = 0;
scanf("%d %d", &n, &w);
long long int value = 0;
for (int i = 0; i < n; i++)
scanf("%d", &arr[i]);
value = value + w;
for (int i = 1; i < n; i++)
{
if (arr[i] > arr[save_min])
{
save_max = i;
for (j = i; j < n; j++)
{
if (arr[j] < arr[save_max])
{
temp = j;
break;
}
else
save_max = j;
}
value = (value / arr[save_min]) * arr[save_max] + value % arr[save_min];
save_min = temp;
i = j;
}
else
save_min = i;
}
printf("%lld", value);
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
'알고리즘' 카테고리의 다른 글
백준 10819번 문제 ( 차이를 최대로 ) (0) | 2020.01.09 |
---|---|
백준 14889번 문제 ( 스타트와 링크 ) (0) | 2020.01.09 |
백준 1049번 문제 ( 기타줄 ) (0) | 2020.01.08 |
백준 18110번 문제 ( solved.ac ) (0) | 2020.01.08 |
백준 9663번 문제 ( N - Queen ) (0) | 2020.01.08 |