Submission #1280960

#TimeUsernameProblemLanguageResultExecution timeMemory
1280960trideserSki 2 (JOI24_ski2)C++20
0 / 100
1 ms332 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long int main() { ll N, K; cin >> N >> K; if(K != 100000) return 1; vector<pair<ll, ll>> ver(N); for(ll i = 0; i < N; i++) { ll a, b; cin >> a >> b; ver[i] = make_pair(a, b); } sort(ver.begin(), ver.end()); ll ret = 0; for(ll i = 1; i < N && ver[i].first == 0; i++) { ver[i].first = 1; ret += 100000; } ll nx_free = 0; ll mn = ver[0].second; ll nx_mn = 0x7fffffff; vector<ll> free(301, 0); vector<ll> minprice(301, 0x7fffffff); for(pair<ll, ll> p : ver) { for(ll i = p.first + 1; i < 301; i++) { free[i]++; minprice[i] = min(minprice[i], p.second); } } vector<pair<ll, ll>> v; for(pair<ll, ll> p : ver) { v.push_back(make_pair(-p.second, p.first)); } sort(v.begin(), v.end()); for(pair<ll, ll> p : v) { if(p.second == 0) continue; if(free[p.second] > 0) { for(int i = p.second; i < 301; i++) free[i]--; } else { ret += minprice[p.second]; } } cout << ret; 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...