223042026-01-14 21:02:54szasztundeBányász RPG (40 pont)cpp17Időlimit túllépés 36/40400ms1144 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()
{
    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/013ms512 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/28ms316 KiB
6Elfogadva2/218ms716 KiB
7Elfogadva2/23ms324 KiB
8Elfogadva2/24ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms500 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms316 KiB
13Elfogadva4/42ms316 KiB
14Elfogadva4/41ms504 KiB
15Időlimit túllépés0/2400ms756 KiB
16Elfogadva2/250ms1036 KiB
17Időlimit túllépés0/2400ms1012 KiB
18Elfogadva2/264ms1144 KiB