문제 출처 : https://www.acmicpc.net/problem/17521
17521번: Byte Coin
문제 국제자본부동산회사(ICPC)는 바이트 코인(Byte Coin)에 자금을 투자하고 있다. 바이트 코인은 김박사가 만든 가상 화폐이다. 실제로는 바이트 코인 가격을 예상할 수 없지만 이 문제에서는 바이트 코인 가격 등락을 미리 정확히 예측할 수 있다고 가정하자. 우리는 1일부터 n일까지 n일 동안 그림 1과 같이 바이트 코인의 등락을 미리 알 수 있으며 우리에게는 초기 현금 W가 주어져 있다. 그림 1의 빨간색 네모는 해당 일자의 바이트 코인 가격을 나
www.acmicpc.net
이 문제는 예전 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 |