답안 #703066

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
703066 2023-02-25T21:05:39 Z LucaLucaM Sails (IOI07_sails) C++17
40 / 100
1000 ms 7284 KB
#include <bits/stdc++.h>

using namespace std;

/**
luam fiecare sail in ordine crescatoare dupa inaltime:
luam cele mai putin frecvente k inaltimi
adunam la raspuns
**/

const int NMAX = 1e5;

struct sail
{
    int x, y;

    bool operator < (const sail aux) const
    {
        if (x == aux.x)
            return y > aux.y;
        return x < aux.x;
    }
};

sail a[NMAX + 5];

int f[NMAX + 5];

multiset<pair<int, int>>st;

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

    int n;
    cin >> n;

    for (int i=1; i<=n; i++)
        cin >> a[i].x >> a[i].y;

    sort(a+1, a+n+1);

    long long ans = 0;

    for (int i=1; i<=n; i++)
    {
        for (int j=a[i-1].x+1; j<=a[i].x; j++)
            st.insert({0, j});

        vector<pair<int, int>>temp;

        for (int step=0; step<a[i].y; step++)
        {
            int aux2 = (*st.begin()).second;

            f[aux2]++;
            int aux1 = (*st.begin()).first;
            aux1++;
            st.erase(*st.begin());
            temp.push_back({aux1, aux2});
        }

        for (int step=0; step<a[i].y; step++)
        {
            st.insert({temp[step].first, temp[step].second});
        }
    }

    for (int i=1; i<=NMAX; i++)
        ans += (long long) f[i] * (f[i] - 1) / 2;

    cout << ans;

    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 212 KB Output is correct
2 Correct 23 ms 368 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 669 ms 636 KB Output is correct
2 Correct 553 ms 5632 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1072 ms 1324 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1052 ms 844 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1071 ms 1136 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1072 ms 7284 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1065 ms 1500 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1071 ms 1956 KB Time limit exceeded
2 Halted 0 ms 0 KB -