پاسخ سوال انرژی خور کوئرا
در این نوشته تمرین “انرژی خور” که در وبسایت کوئرا موجود است را برای شما کاربران عزیز حل کردهایم.
پاسخ سوال انرژی خور کوئرا
رادزینکا دوبرامیل ویچشسلافوویچ (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; }
منبع سوال: وبسایت کوئرا
اگر روش حل بهتری برای “تمرین انرژی خور” دارید برای ما ارسال کنید تا با نام خودتان به اشتراک بگذاریم.
اگر سوال خاصی را مدنظر دارید در بخش نظرات برای ما ارسال کنید تا حل آن سوال را در الویت محتوای سایت بگذاریم.
ارسال پاسخ