제출 #1169451

#제출 시각아이디문제언어결과실행 시간메모리
1169451Szymon_PilipczukJelly Flavours (IOI20_jelly)C++20
0 / 100
0 ms320 KiB
#include <bits/stdc++.h> using namespace std; int find_maximum_unique(int x,int y,vector<int> a,vector<int> b) { int n = a.size(); vector<pair<int,int>> mya; for(int i = 0;i<n;i++) { mya[i] = {a[i],i}; } vector<pair<int,int>> mc; sort(mya.begin(),mya.end()); for(int i =0;i<n;i++) { mc[i] = {mya[i].first,b[mya[i].second]}; } int dp[n][x]; for(int i = 0;i<n;i++) { for(int j = 0;j<x;j++) { if(i == 0) { if(j >= mc[i].first) { dp[i][j] = 0; } else { dp[i][j] = mc[i].second; } } else { dp[i][j] = dp[i-1][j] + mc[i].second; if(j >= mc[i].first) { dp[i][j] = min(dp[i][j],dp[i-1][j-mc[i].first]); } } } } int ans = 0; for(int i =0 ;i<n;i++) { int cy = y; cy -= dp[i][x-1]; if(cy >= 0) { vector<int> r; for(int j = i+1;j<n;j++) { r.push_back(mc[j].second); } sort(r.begin(),r.end()); int cans = 0; for(int j = 0;j<r.size();j++) { if(cy >= r[j]) { cy-=r[j]; cans++; } } ans = max(ans,cans+i+1); } } return ans; }
#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...