1일1알

백준 21318번 피아노 체조 C++ 본문

알고리즘

백준 21318번 피아노 체조 C++

영춘권의달인 2023. 3. 14. 10:10

https://www.acmicpc.net/problem/21318

 

21318번: 피아노 체조

피아노를 사랑하는 시은이는 매일 아침 피아노 체조를 한다. 시은이는 N개의 악보를 가지고 있으며, 1번부터 N번까지의 번호로 부른다. 각 악보는 1 이상 109 이하의 정수로 표현되는 난이도를

www.acmicpc.net

 

누적 합 문제이다.

한가지 주의해야 할 점이 있는데, 예를 들어 전체 연주 1 ~ 10 구간의 5 부분에서 실수를 한다고 했을 때, 만약 1 ~ 5까지만 연주를 한다고 하면 5 뒤는 없기 때문에 이때는 실수를 하지 않는다.

 

#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <list>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <limits.h>

using namespace std;
using int64 = long long;

vector<int> v;
vector<int> accSum;

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

    int n, q;
    cin >> n;
    v = vector<int>(n + 1);
    accSum = vector<int>(n + 1, 0);
    for (int i = 1; i <= n; i++) cin >> v[i];
    for (int i = 1; i <= n; i++) {
        accSum[i] = accSum[i - 1];
        if (i == n) break;
        if (v[i + 1] < v[i]) accSum[i]++;
    }
    cin >> q;
    for (int i = 0; i < q; i++) {
        int x, y;
        cin >> x >> y;
        cout << accSum[y - 1] - accSum[x - 1] << "\n";
    }
}

'알고리즘' 카테고리의 다른 글

백준 16112번 5차 전직 C++  (0) 2023.03.16
백준 2075번 N번째 큰 수 C++  (0) 2023.03.15
백준 3758번 KCPC C++  (0) 2023.03.12
백준 1935번 후위 표기식2 C++  (0) 2023.03.11
백준 16168번 퍼레이드 C++  (0) 2023.03.08