(cpp) Softeer ‘성적평균’ - 세그먼트트리

Softeer ‘성적평균’ - 세그먼트트리


문제

풀이

#define _CRT_SECURE_NO_WARNINGS
#include<vector>
#include<iostream>
using namespace std;

int n,k,s,a,b;
vector<int> slist;
vector<pair<int, int>> ablist;

int main() {
	//n명
	//성적 s
	//학번구간 [A,B] k개
	//그 구간에 해당하는 학생들 성적 출력

	cin >> n >>k;
	int ret1 = n;
	while (ret1--) {
		cin >> s;
		slist.push_back(s);
	}
	int ret2 = k;
	while (ret2--) {
		cin >> a >> b;
		ablist.push_back(make_pair(a, b));
	}

	for (int i = 0; i < k; i++) {
		float sum = 0.0;
		float start = ablist[i].first -1.0;
		float finish = ablist[i].second-1.0;
		for (int j = start; j <= finish; j++) {
			sum = sum + slist[j];
		}
		float  mean = sum / (finish - start + 1);
		printf("%.2f\n",mean);

	}

}