백준 13305 c

magicdrill·2024년 4월 9일

백준 문제풀이

목록 보기
276/673

백준 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;
}

0개의 댓글