백준 13305 c
#include <stdio.h>
#include <stdlib.h>
#pragma warning (disable:4996)
int input(int lower, int upper)
{
//cout << "input()" << endl;
int A;
while (1)
{
scanf("%d", &A);
if (A >= lower && A <= upper)
{
break;
}
else
{
;
}
}
return A;
}
void input_array(int* arr, int n)
{
int i;
for (i = 0; i < n; i++)
{
arr[i] = input(1, 1000000000);
}
return;
}
long long int find_result(int* length, int* gas, int N)
{
int i;
long long int result = 0;
int min = gas[0];
for (i = 0; i < N - 1; i++)
{
if (gas[i] < min)
{
min = gas[i];
}
else
{
;
}
result += (long long int)length[i] * min;
}
return result;
}
int main(void)
{
int N;
int* length;
int* gas;
N = input(2, 100000);
length = (int*)malloc(sizeof(int) * (N - 1));
gas = (int*)malloc(sizeof(int) * (N));
if (length == NULL || gas == NULL)
{
return 1;
}
else
{
;
}
input_array(length, N - 1);
input_array(gas, N);
printf("%lld\n", find_result(length, gas, N));
free(length);
free(gas);
return 0;
}