제출 #1184843

#제출 시각아이디문제언어결과실행 시간메모리
1184843asli_bgGym Badges (NOI22_gymbadges)C++20
0 / 100
2093 ms9416 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=5e5+5; bool mm(pii a,pii b){ if(a.se==b.se) a.fi<b.fi; return a.se<b.se; } pii dp[MAXN]; 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); dp[0]={0,0}; FORE(i,1,n+1){ dp[i]={1,0}; FOR(j,i){ if(dp[j].se+a[j].fi<=a[i].se){ if(dp[j].fi+1>dp[i].fi){ dp[i].fi=dp[j].fi+1; dp[i].se=dp[j].se+a[j].fi; } else if(dp[j].fi+1==dp[i].fi){ if(dp[j].se+a[j].fi<dp[i].se){ dp[i].se=dp[j].se+a[j].fi; } } } } } cout<<dp[n].fi<<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...