پاسخ سوال انرژی خور + کوئرا

پاسخ سوال انرژی خور + کوئرا
پاسخ سوال انرژی خور + کوئرا

پاسخ سوال انرژی خور + کوئرا

در این نوشته تمرین “انرژی خور” که در وبسایت کوئرا موجود می باشد را برای شما کاربران عزیز حل کرده ایم.

 

در مورد سایت کوئرا بیشتر بخوانید…

 

تمرین انرژی خور کوئرا + سی پلاس پلاس

رادزینکا دوبرامیل ویچشسلافوویچ (Rodzyanko Dobromil Vyacheslavovich) که یک فرد تنبل طماع است، نیاز به انرژی بیشتری برای خواب زمستانی دارد. از این رو به یک میوه‌فروشی رفته و می‌خواهد میوه بخورد تا انرژی بگیرد. او در ابتدا  واحد انرژی دارد. میوه‌فروشی n تا میوه دارد که با اعداد طبیعی نامگذاری شده‌اند و میوه‌ی i، مقدار a_i انرژی به رادزینکا می‌دهد و مقدار b_i انرژی از او می‌گیرد.(این انرژی به خاطر پوست کندن میوه است) پس دقت کنید که زمانی که رادزینکا می‌خواهد میوه‌ی i را بخورد، باید حداقل به اندازه‌ی b_i انرژی داشته باشد؛ زیرا این مقدار انرژی را باید صرف پوست کندن میوه کند و این مقدار از انرژی رادزینکا کم می‌شود. سپس او این میوه را می‌خورد و به انرژی‌اش a_i تا اضافه می‌شود. رادزینکا می‌خواهد تعداد بزرگتر مساوی صفری از این میوه‌ها را انتخاب کرده و بخورد، طوری که در نهایت بیشترین انرژی را داشته باشد. به او بگویید که بیشترین انرژی که می‌تواند بدست بیاورد چقدر است.

 

ورودی سوال انرژی خور

در سطر اول ورودی دو عدد n و  آمده است که به ترتیب نمایانگر تعداد میوه‌ها و انرژی اولیه رادزینکا می‌باشد. سپس در هر یک از n سطر بعدی یک میوه بدین صورت توصیف می‌شود:

دو عدد b_i و a_i آمده‌اند که عدد اول نمایانگر انرژی است که رادزینکا باید برای خوردن میوه مصرف کند و عدد دوم نمایانگر انرژی است که میوه به رادزینکا می‌دهد.

0

خروجی سوال انرژی خور

خروجی باید شامل یک عدد باشد که برابر بیشترین انرژی است که رادزینکا می‌تواند با خوردن تعدادی میوه بدست بیاورد.

 

حل سوال انرژی خور (به زبان برنامه نویسی سی پلاس پلاس)

#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    long long n, k;
    cin >> n >> k;
    pair<int, int> a[n];
    for(int i=0; i<n; i++) cin >> a[i].first >> a[i].second;
    sort(a, a+n);
    
    for(int i=0; i<n; i++)
    {
        if(k >= a[i].first && a[i].first < a[i].second)
        {
            k -= a[i].first;
            k += a[i].second;
        }
    }
    
    cout << k << endl;
    
    return 0;
}

 

 

منبع سوال : وبسایت کوئرا

 

اگر روش حل بهتری برای “تمرین انرژی خور” دارید برای ما ارسال کنید تا با نام خودتان به اشتراک بگذاریم.

اگر سوال خاصی را مدنظر دارید در بخش نظرات برای ما ارسال کنید تا حل آن سوال را در الویت محتوای سایت بگذاریم.

موفق باشید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]