알고리즘/BOJ

백준 11969번 Breed Counting

꾸준함. 2019. 2. 8. 00:35

문제 링크입니다: https://www.acmicpc.net/problem/11969


각각의 소에 대해 부분합을 구하여 각 쿼리에 대한 답을 적절히 출력하면 되는 문제였습니다.


#include <iostream>

using namespace std;

 

const int MAX = 100000 + 1;

 

int H[MAX], G[MAX], J[MAX];

 

int main(void)

{

        ios_base::sync_with_stdio(0);

        cin.tie(0);

        int N, Q;

        cin >> N >> Q;

 

        //부분합 구한다

        for (int i = 1; i <= N; i++)

        {

                 int num;

                 cin >> num;

 

                 H[i] = H[i - 1];

                 G[i] = G[i - 1];

                 J[i] = J[i - 1];

 

                 switch (num)

                 {

                 case 1:

                         H[i]++;

                         break;

                 case 2:

                         G[i]++;

                         break;

                 case 3:

                         J[i]++;

                         break;

                 }

        }

 

        for (int i = 0; i < Q; i++)

        {

                 int a, b;

                 cin >> a >> b;

 

                 cout << H[b] - H[a - 1] << " ";

                 cout << G[b] - G[a - 1] << " ";

                 cout << J[b] - J[a - 1] << "\n";

        }

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~


반응형