제출 #1323648

#제출 시각아이디문제언어결과실행 시간메모리
1323648boclobanchatGym Badges (NOI22_gymbadges)C++20
100 / 100
128 ms12476 KiB
#include<bits/stdc++.h>
using namespace std;
const int MAXN=5e5+5;
pair<long long,long long> A[MAXN];
bool comp(pair<long long,long long> a,pair<long long,long long> b)
{
	return a.first-b.second<b.first-a.second;
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin>>n;
    for(int i=1;i<=n;i++) cin>>A[i].second;
    for(int i=1;i<=n;i++) cin>>A[i].first;
    long long sum=0,ans=0;
    priority_queue<long long> pq;
    sort(A+1,A+n+1,comp);
    for(int i=1;i<=n;i++)
    {
    	if(sum<=A[i].first) sum+=A[i].second,pq.push(A[i].second),ans++;
    	else if(pq.top()>A[i].second) sum-=pq.top()-A[i].second,pq.pop(),pq.push(A[i].second);
	}
	cout<<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...