Submission #654859

#TimeUsernameProblemLanguageResultExecution timeMemory
654859benjaminkleynSails (IOI07_sails)C++17
30 / 100
1084 ms12808 KiB
#pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #pragma GCC target("avx,avx2,fma") #include <bits/stdc++.h> using namespace std; typedef long long ll; const int max_n = 100'000; int n; pair<int,int> mast[max_n]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n; for (int i = 0; i < n; i++) cin >> mast[i].first >> mast[i].second; sort(mast, mast + n); set<pair<int,int>> H; unordered_map<int,int> cnt; for (int h = 1; h <= mast[n - 1].first; h++) { cnt[h] = 0; H.insert({cnt[h], h}); } for (int i = 0; i < n; i++) { vector<pair<int,int>> best; for (auto [count, height] : H) if (best.size() >= mast[i].second) break; else if (height <= mast[i].first) best.push_back({count, height}); for (auto [count, height] : best) { H.erase({count, height}); H.insert({count + 1, height}); cnt[height] = count + 1; } } ll sum = 0; for (auto [count, height] : H) sum += count * (count - 1) / 2; cout << sum << '\n'; return 0; }

Compilation message (stderr)

sails.cpp: In function 'int main()':
sails.cpp:35:29: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   35 |             if (best.size() >= mast[i].second)
      |                 ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
#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...