Submission #1185051

#TimeUsernameProblemLanguageResultExecution timeMemory
1185051asli_bgGym Badges (NOI22_gymbadges)C++20
42 / 100
1010 ms204436 KiB
#include <bits/stdc++.h> using namespace std; #define int long long typedef pair<int,int> pii; typedef vector<int> vi; typedef vector<pii> vii; typedef vector<bool> vb; #define fi first #define se second #define pb push_back #define mid (l+r)/2 #define all(x) x.begin(),x.end() #define FOR(i,a) for(int i=0;i<(a);i++) #define FORE(i,a,b) for(int i=(a);i<(b);i++) #define cont(x) for(auto el:x) cout<<el<<' ';cout<<endl; #define contp(x) for(auto el:x) cout<<el.fi<<'-'<<el.se<<' ';cout<<endl; #define sp <<" "<< #define DEBUG(x) cout<<(#x) sp x<<endl const int INF=1e18; const int MAXN=5e3+5; int dp[MAXN][MAXN]; //dp[i][j]=k; --> i.ye kadar j tane valid varkenki min a[i].fi ler toplamı bool mm(pii a,pii b){ return a.fi+a.se<b.fi+b.se; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin>>n; vii a(n+1); FORE(i,1,n+1) cin>>a[i].fi; FORE(i,1,n+1) cin>>a[i].se; sort(all(a),mm); int res=1; FOR(i,n+1){ dp[i][0]=0; FORE(j,1,n+1){ dp[i][j]=INF; } } FORE(i,1,n+1){ FOR(j,n+1){ if(dp[i-1][j]==INF) continue; dp[i][j]=min(dp[i][j],dp[i-1][j]); if(dp[i-1][j]<=a[i].se){ dp[i][j+1]=min(dp[i][j+1],dp[i-1][j]+a[i].fi); } } } FORE(i,1,n+1) if(dp[n][i]!=INF) res=i; cout<<res<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...