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