Submission #554922

#TimeUsernameProblemLanguageResultExecution timeMemory
554922MohamedFaresNebiliSails (IOI07_sails)C++14
40 / 100
1097 ms4048 KiB
#include <bits/stdc++.h> /// #pragma GCC optimize ("Ofast") /// #pragma GCC target ("avx2") /// #pragma GCC optimize("unroll-loops") using namespace std; using ll = long long; using ii = pair<ll, ll>; using vi = vector<int>; #define ff first #define ss second #define pb push_back #define all(x) (x).begin(), (x).end() #define lb lower_bound #define int ll const int oo = 1e9 + 7; int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N; cin >> N; vector<ii> arr(N); for(int l = 0; l < N; l++) cin >> arr[l].ff >> arr[l].ss; sort(arr.begin(), arr.end()); int res = 0, curr = 0; priority_queue<int, vector<int>, greater<int>> pq; for(int l = 0; l < N; l++) { int H = arr[l].ff, K = arr[l].ss; for(int i = curr + 1; i <= H; i++) pq.push(0); curr = max(curr, H); int calc = 0; vector<int> vec; while(calc < K) { int v = pq.top(); pq.pop(); vec.pb({v + 1}); calc++; } for(auto u : vec) pq.push(u); } while(!pq.empty()) { int u = pq.top(); pq.pop(); res += (u * (u - 1)) / 2; } cout << res << "\n"; }
#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...