백준 11659 c++

magicdrill·2024년 4월 4일
0

백준 문제풀이

목록 보기
260/654

백준 11659 c++

#include <iostream>

using namespace std;

int input(int lower, int upper)
{
	//cout << "input()" << endl;
	int A;

	while (1)
	{
		cin >> A;
		if (A >= lower && A <= upper)
		{
			break;
		}
		else
		{
			;
		}
	}

	return A;
}

void arr_input(int *arr, int N)
{
	int i;

	arr[0] = 0;
	for (i = 1; i <= N; i++)
	{
		arr[i] = arr[i-1] + input(1, 1000);
	}

	return;
}

void arr_ij_input(int **arr_ij, int M, int N)
{
	int t;
	int i, j;

	for (t = 0; t < M; t++)
	{
		i = input(1, N);
		j = input(i, N);
		arr_ij[t][0] = i;// i
		arr_ij[t][1] = j;// j
	}

	return;
}

void find_result(int *arr, int **arr_ij, int N, int M)
{
	int t;
	int i, j;
	int sum;

	for (t = 0; t < M; t++)
	{
		i = arr_ij[t][0];
		j = arr_ij[t][1];
		sum = arr[j] - arr[i-1];
		cout << sum << "\n";
	}

	return;
}

int main(void)
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int N, M, i;
	int* arr;
	int** arr_ij;

	N = input(1, 100000);
	M = input(1, 100000);
	arr = new int[N + 1];
	arr_ij = new int* [M];
	for (i = 0; i < M; i++)
	{
		arr_ij[i] = new int[2];
	}
	arr_input(arr, N);
	arr_ij_input(arr_ij, M, N);
	find_result(arr, arr_ij, N, M);
	delete[] arr;
	for (i = 0; i < M; i++)
	{
		delete[] arr_ij[i];
	}
	delete[] arr_ij;

	return 0;
}

0개의 댓글