سلام من یه سوال 2002 acm که ولی نمیدونم باید چجوری حلش کنم اگه متوجه میشین ممنون میشم راهنماییم کنید
در این مساله، شما محاسبه می کنید که چه مقدار از مواد غذایی لازم برای خرید یک سفر در بیابان را به پا بیاورید.
در محل شروع خود، می توانید غذا را در فروشگاه عمومی خریداری کنید و شما می توانید مقدار نامحدود آب آزاد را جمع آوری کنید. صحرا ممکن است در مناطق مختلف حاوی oases باشد. در هر واحه، شما می توانید آب به همان اندازه که شما می خواهید جمع آوری و شما می توانید غذا برای استفاده های بعدی ذخیره، اما شما می توانید هر گونه مواد غذایی اضافی را خریداری کنید. شما همچنین می توانید غذا را برای استفاده بعدی در محل شروع ذخیره کنید. شما از مختصات موقعیت شروع، همه oases ها و مقصد خود در یک سیستم هماهنگ دو بعدی که فاصله واحد یک مایل است، داده می شود.
برای هر مایل که راه می روید، شما باید یک واحد غذا و یک واحد آب مصرف کنید. فرض کنید که این منابع به طور مداوم مصرف می شوند، بنابراین اگر شما برای یک مسافت جزئی حرکت کنید، واحد های غذایی و آب خود را مصرف خواهید کرد. شما نمیتوانید به طور کلی قدم بگذارید، مگر اینکه از غذا و آب تهیه کنید. در حالی که در حال پیاده روی هستید، باید مواد را مصرف کنید نه در حالی که در اواسط استراحت می کنید. البته، مقدار کل مواد غذایی و آبی که می توانید حمل کنید محدود است. این حد به عنوان ظرفیت حمل و نقل در واحد کل بیان شده است. در هیچ زمانی، مجموع واحدهای غذایی و واحدهای آب که حمل می کنید، بیشتر از این ظرفیت است.
شما باید تصمیم بگیرید که چقدر مواد غذایی لازم برای خرید در محل شروع به منظور قرار دادن آن به مقصد است. هنگامی که به مقصد میروید، نیازی به غذا یا آب ندارید. از آنجایی که فروشگاه عمومی تنها در کل واحدهای غذا فروش می کند و تنها یک میلیون واحد غذا در دسترس است، مقدار غذای مورد نیاز شما باید یک عدد صحیح بزرگتر از صفر و کمتر از یک میلیون باشد.

ورودی
خط اول ورودی در هر مجموعه داده آزمایشی شامل n (2 ≤ n ≤ 20) است که تعداد کل مکان های قابل توجه در بیابان است و به دنبال آن یک عدد صحیح است که ظرفیت کل بار شما در واحد غذا و آب است. خطوط بعدی حاوی جفت عدد صحیح هستند که مختصات مکان های مهم را نشان می دهند. اولین محل قابل توجه، نقطه شروع است، که در آن شما باید مواد غذایی خود را خریداری کنید. آخرین مکان قابل توجه مقصد است و مکان های مهم مداخله (در صورت وجود) هستند. شما نیازی به دیدن هر oasis ندارید مگر اینکه در رسیدن به مقصد خود مفید باشد

خروجی
برای هر آزمایش، شماره آزمایش را به دنبال یک عدد صحیح که تعداد واحدهای غذایی مورد نیاز برای سفر شما را نشان می دهد، چاپ کنید.


جدیدترین سوالات





جستجو در بانک سوالات
در این قسمت می توانید بخشی از متن سوال را وارد نموده و به دنبال سوال مورد نظر خود بگردید:

بخشی از متن سوال:

برنامه ای بنویسید که دو عدد رقمی را گرفته و رقم

برنامه ای بنویسید که دو عدد ۲۰ رقمی را گرفته و رقم های اعداد تفکیک شده و در ارایه قرار گیرند بعد ان دو ارایه را با هم جمع کرده و در یک ارایه دیگر بریزید. در این تمرین توجه به نکات زیر ضروری یست: اعداد دریافتی از ورودی میتوانند تا ۲۰ رقم باشند عدد اول در ارایه اول و عدد دوم در ارایه دوم قرار گیرد توجه:گاها ماشین حساب نمیتواند اعداد بزرگ را جمع بزند ولی شما با این ترفند میتوانید هر عملی را انجام دهید لطفا اگر کسی میدونه سورس کدشو بنویسه برام تشکر



0
امتیاز

جواب های موجود برای این سوال:


ازین پس می توانید به کاربرانی که دوست دارید هدیه بدهید! کافیست بر روی علامت    در کنار تصویر آنها کلیک کنید!

1


جواب برای این سوال ثبت شده است!

تازه ترین


جواب ها رو اول نشون بده

پرامتیاز ترین


جواب ها رو اول نشون بده

1 جواب برای این سوال ثبت شده!

چینش بر اساس زمان ثبت


چینش بر اساس امتیاز



0
23867
0

.:.sojaAI.:.

سوالی که مطرح کردی در مورد برنامه نویسی هست و جواب مناسب برای این سوال در زمینه برنامه نویسی با زبان‌های مختلف می‌تواند متفاوت باشد. من برای تو یک نمونه کد پایه در زبان پایتون می‌نویسم که وظیفه‌ای رو که توضیح دادی انجام می‌دهد و تو می‌توانی این کد رو به هر زبان برنامه نویسی دیگری‌ ترجمه کنی.


 
def add_large_numbers(num1, num2):
# تبدیل اعداد به لیست از رقم‌ها
digits1 = list(map(int, str(num1)))
digits2 = list(map(int, str(num2)))

# ارایه نهایی برای نگهداری جمع دو عدد
result = []

# پد کردن لیست های کوچکتر با صفر
max_len = max(len(digits1), len(digits2))
digits1 = [0] * (max_len - len(digits1)) + digits1
digits2 = [0] * (max_len - len(digits2)) + digits2

# جمع کردن از رقم آخر به اول
carry = 0
for i in range(max_len-1, -1, -1):
sum = digits1[i] + digits2[i] + carry
carry = sum // 10
result.insert(0, sum % 10)

# اگر بعد از جمع آخر، مقداری برای انتقال باقی مانده
if carry != 0:
result.insert(0, carry)

return result

# مثال استفاده
num1 = '12345678901234567890'
num2 = '98765432109876543210'
result = add_large_numbers(num1, num2)
print(result)


این کد دو رشته که هر کدام می‌توانند نماینده یک عدد ۲۰ رقمی باشند را می‌گیرد، آنها را به ارقام تبدیل می‌کند و سپس از طرف راست به چپ این ارقام را با هم جمع می‌کند و نتیجه را در لیستی می‌ریزد. توجه کن که این کد نیازمند ورودی به صورت رشته‌های متنی است، چون اعداد بسیار بزرگ ممکن است در بعضی زبان‌های برنامه‌نویسی نتوانند به صورت عددی نمایش داده شوند.

امیدوارم این کد برای تو مفید باشه و بتوانی مسئله‌ی مورد نظرت را حل کنی.

جویا
لطفاً توجه داشته باشید این پاسخ توسط هوش مصنوعی و به صورت خودکار تولید شده و ممکن است دقت کامل را نداشته باشد و حتی در مواردی کاملا اشتباه باشد. پس اطلاعات آن را حتما خودتان بررسی کنید و برای مشاوره حرفه‌ای، لطفاً به یک متخصص مراجعه کنید. ما مسئولیتی در قبال استفاده از اطلاعات ارائه شده در این جواب یا جواب های دیگر نداریم.
0
امتیاز




جواب تو چیه؟
userImage
کاربر میهمان



22500 امتیاز هدیه بهترین جواب

20000 امتیاز هدیه بهترین جواب


20000 امتیاز هدیه بهترین جواب


















پرسش سوال جدید :: تبلیغات در سوال و جواب :: گروه های سوال و جوابی

تمامی حقوق مادی و معنوی، متعلق به وب سایت سوال جواب (soja.ai) و تیم مدیریتی آن می باشد.

طراحی و اجرا : گروه مشاوران فناوری اطلاعات

پاسخ های موجود در سایت توسط کاربران سایت ثبت می شود،
سایت سوال و جواب هیچ مسئولیتی در قبال صحت و محتوی پاسخ ها ندارد، هرچند تا حد امکان نظارت بر محتوی آنها صورت می گیرد.