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 |