제출 #1169465

#제출 시각아이디문제언어결과실행 시간메모리
1169465bbartekJelly Flavours (IOI20_jelly)C++20
0 / 100
117 ms77008 KiB
#include <bits/stdc++.h> #include "jelly.h" using namespace std; typedef long long ll; #define st first #define nd second #define pb push_back const int maxn = 2003; int dp[2003][10003]; int find_maximum_unique(int x, int y, vector<int> a, vector<int> b) { vector<pair<int,int>> sortowane; int n=a.size(); for(int i=0;i<n;i++){ sortowane.pb({a[i],b[i]}); } sort(sortowane.begin(),sortowane.end()); dp[0][0] = y; int wyn=0,akt,ile; vector<int> reszta; for(int i=1;i<=n;i++){ for(int j=0;j<=x;j++){ if(j>0) dp[i][j] = dp[i][j-1]; if(j >= sortowane[i-1].st) dp[i][j] = max(dp[i][j],dp[i-1][j-sortowane[i-1].st]); if(dp[i-1][j] >= sortowane[i-1].nd) dp[i][j] = max(dp[i][j],dp[i-1][j] - sortowane[i-1].nd); } akt = i; ile = dp[i][x]; reszta.clear(); for(int j=i+1;j<=n;j++){ reszta.pb(sortowane[i-1].nd); } sort(reszta.begin(),reszta.end()); for(auto j : reszta){ if(j > ile) break; ile -= j; akt++; } wyn = max(wyn,akt); } return wyn; } /* int main(){ int odp = find_maximum_unique(15,12,{0,0,1,1,1,2,4,9,5},{0,0,1,1,1,2,4,9,5}); cout<<odp<<"\n"; 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...