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

 

 

#문제 간단 정리

수학문제

 

#문제 해결 방법

 

대략 n보다 작은 수의 개수 * n을 포함한 n보다 큰 원소들  + n보다 큰 원소들

 

구간 만드는 규칙을 잘 살피면 되는데

n보다 작은 원소들을 n을 포함한 원소들과 짝을 만들고

n은 n보다 큰 원소들과 짝을 지어준다고 생각하자

 

#전체 코드

#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <climits>
using namespace std;

int main() {
    
    int n;
    cin >> n;
    vector<int> nums(n);
    for (int i = 0; i < n; i++) {
        cin >> nums[i];
    }
    nums.push_back(0);
    sort(nums.begin(), nums.end());


    int a; cin >> a;

    int down, up;
    bool upflag = false;
    for (int k : nums) {
        if (k < a) {
            down = k;
        }
        if (upflag == false && k > a) {
            up = k;
            upflag = true;
        }
        if (k == a) {
            cout << 0 << '\n';
            return 0;
        }
    }
    //cout << "down :" << down << '\n';
    //cout << "up : " << up << '\n';
    
    int c1 = 0;
    int c2 = 0;
    for (int i = down+1; i <= a-1; i++) {
        c1++;
    }
    for (int i = a; i <= up-1; i++) {
        c2++;
    }

    cout << c1 * c2 + (c2 - 1) << '\n';
}

'[백준] > C++' 카테고리의 다른 글

백준 14760번 Reverse Nonogram [C++]  (0) 2024.08.23
백준 6123번 O Those Fads [C++]  (0) 2024.07.27
백준 1522번 문자열 교환 [C++]  (6) 2024.07.24
백준 12904번 A와 B [C++]  (1) 2024.07.23
백준 31962번 밤양갱 [C++]  (3) 2024.07.23

+ Recent posts