제출 #1257897

#제출 시각아이디문제언어결과실행 시간메모리
1257897brover29Akcija (COCI21_akcija)C++17
0 / 110
1010 ms589824 KiB
#include <bits/stdc++.h> //qwerty47924692 using namespace std; using ll = long long; const ll N=2005; #define f first #define s second const string br="617283"; struct cmp{ bool operator()(const pair<ll,ll> &a,const pair<ll,ll> &b)const{ if(a.f==b.f)return a.s<b.s; return a.f>b.f; } }; multiset<pair<ll,ll>,cmp>dp[N]; ll n,k,a[N],d[N]; void upd(multiset<pair<ll,ll>,cmp> &a){ while(a.size()>2*k){ auto it=(--a.end()); a.erase(it); } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin>>n>>k; for(ll i=1;i<=n;i++){ cin>>a[i]>>d[i]; } dp[0].insert({0,0}); for(ll i=1;i<=n;i++){ dp[i]=dp[i-1]; for(auto [cnt,w]:dp[i-1]){ if(cnt+1>d[i])continue; dp[i].insert({cnt+1,w+a[i]}); } // upd(dp[i]); } for(auto [cnt,w]:dp[n]){ cout<<cnt<<' '<<w<<'\n'; k--; if(!k)break; } }
#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...