Processing math: 100%

ABOUT ME

Today
Yesterday
Total
  • 459-B, *1300
    코드포스 2021. 7. 28. 15:34
     

    Problem - 459B - Codeforces

     

    codeforces.com

    문제

    • n(2n2105)개의 b(1b109)가 주어진다
    • bi, bj, ij 차이의 최대값을 구하고 그 값이 나올 수 있는 경우의 수를 구하라

     

    풀이

    bi의 최대값을 max, 최솟값을 min 이라고 하자

    i) max=min
    차이의 최대값이 나오는 경우의 수는 b의 값에 따라 개수를 세서 구한다.
    (max value b number)×(min value b number)

    ii) maxmin
    차이의 최대값이 나오는 경우의 수는
    (n2)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #include <bits/stdc++.h>
    #define endl "\n"
    using namespace std;
     
    int n;
    int maxval = 0;
    int minval = 1e9;
    map<intlong long> m;
     
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0), cout.tie(0);
     
        cin >> n;
        int b;
        for(int i = 0; i < n; i++){
            cin >> b;
            if(b > maxval) maxval = b;
            if(b < minval) minval = b;
            m[b]++;
        }
     
        if(maxval != minval) cout << maxval - minval << ' ' << m[maxval]*m[minval] << endl;
        else cout << 0 << ' ' << (long long)n*(n-1)/2 << endl;
     
        return 0;

    '코드포스' 카테고리의 다른 글

    1547-D, *1300  (0) 2021.07.30
    1553-B, *1300  (0) 2021.07.28
    451-B, *1300  (0) 2021.07.28
    189-A, *1300  (0) 2021.07.27
    230-B, *1300  (0) 2021.07.27

    댓글

Designed by Tistory.