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...