Submission #1300045

#TimeUsernameProblemLanguageResultExecution timeMemory
1300045kaloyanSails (IOI07_sails)C++20
30 / 100
1097 ms1252 KiB
#include <iostream>
#include <algorithm>
#include <vector>

const int MAXN = 1e5 + 10;
const int INF = 1e9 + 10;

int n;
long long ans = 0;

struct Mast
{
    int h;
    int k;
};

Mast mast[MAXN];
int cnt[MAXN];

void solve()
{
    std::cin >> n;

    for(int i = 1 ; i <= n ; ++i)
    {
        std::cin >> mast[i].h >> mast[i].k;
    }

    std::sort(mast + 1, mast + n + 1, [&](const Mast &a, const Mast &b)
    {
        return a.h < b.h;
    });

    for(int i = 1 ; i <= n ; ++i)
    {
        auto [h, k] = mast[i];

        std::vector<bool> used(h + 1, false);
        for(int j = 1 ; j <= k ; ++j)
        {
            int minLevel, minLevelCnt = INF;
            for(int level = 1 ; level <= h ; ++level)
            {
                if(used[level]) continue;

                if(cnt[level] < minLevelCnt)
                {
                    minLevel = level;
                    minLevelCnt = cnt[level];
                }
            }

            ans += minLevelCnt;
            cnt[minLevel] += 1;
            used[minLevel] = true;
        }
    }

    std::cout << ans << "\n";
}

void fastIO()
{
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(NULL);
    std::cout.tie(NULL);
}

int main()
{
    fastIO();
    solve();
    
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...