224842026-01-15 09:32:39szasztundeBányász RPG (40 pont)cpp17Időlimit túllépés 36/40400ms1076 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
struct par
{
    int tap,menny;
};
bool hasonlit(par x,par y){
        return x.tap<y.tap;
}
int main()
{
    ios_base::sync_with_stdio(false);
	cin.tie(NULL);
    int n;
	cin>>n;
	vector <par> a(n);
	for(int i=0;i<n;i++) cin>>a[i].tap;
	for(int i=0;i<n;i++) cin>>a[i].menny;
	sort(a.begin(),a.end(),hasonlit);
	//for(int i=0;i<n;i++) cout<<a[i].tap<<" "<<a[i].menny<<endl;
	int i=0,j=n-1,perc=0,tapp=0;
	while(i<=j)
    {
        while(a[i].tap<=tapp && i<=j)
        {
            perc+=a[i].menny;
            tapp+=a[i].menny;
            i++;
        }
        if(i<=j)
        while(a[i].tap>tapp)
        {
            if(a[j].tap<=tapp)
            {
                perc+=a[j].menny;
                tapp+=a[j].menny;
                j--;
            }
            else
            {
                perc+=2;
                tapp++;
                a[j].menny--;
            }
        }
    }
    cout<<perc;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base36/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/06ms508 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms500 KiB
5Elfogadva2/24ms316 KiB
6Elfogadva2/28ms564 KiB
7Elfogadva2/22ms316 KiB
8Elfogadva2/22ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms316 KiB
13Elfogadva4/41ms332 KiB
14Elfogadva4/41ms368 KiB
15Időlimit túllépés0/2400ms828 KiB
16Elfogadva2/223ms824 KiB
17Időlimit túllépés0/2400ms820 KiB
18Elfogadva2/229ms1076 KiB