من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

حل تمرین اسنپ در شکرستان کوئرا با پایتون

حل تمرین اسنپ در شکرستان کوئرا با پایتون
حل تمرین اسنپ در شکرستان کوئرا با پایتون

حل تمرین اسنپ در شکرستان کوئرا با پایتون

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

 

حل تمرین اسنپ در شکرستان کوئرا با پایتون

به تازگی اسنپ کار خود را گسترش داده‌است و علاوه بر ایران به مردم شکرستان هم سرویس می‌دهد. شکرستان به N منطقه تقسیم شده است و هزینه سفر از منطقه  به منطقه j مقدار مشخصی است که آن را با Aij نشان می‌دهیم. (توجه کنید که ممکن است هزینه سفر از  به j با هزینه سفر از j به i متفاوت شود.) این ماه اسکندر سفر با اسنپ انجام داده‌ است و حال می‌خواهد محاسبه کند که در مجموع چقدر هزینه این سفر‌ها شده است. حال ما هزینه سفر از هر منطقه به مناطق دیگر و هم‌چنین به ازای هر سفر اسکندر، مبدا و مقصد آن را به شما می‌دهیم. شما باید بگویید که خرج سفر‌های اسکندر در مجموع چقدر بوده است. البته از آن‌جایی که اسکندر اصلا آدم تنبلی نیست به شما این تضمین را می‌دهیم که به ازای هر سفر منطقه مبدا و منطقه مقصد آن متفاوت است.

 

ورودی

ابتدا در یک سطر N و M که به ترتیب نمایانگر تعداد مناطق شکرستان و تعداد سفرهای اسکندر است، به شما داده می‌شود. سپس در N سطر بعدی در هر خط N عدد به شما داده می‌شود که عدد jام در سطر iام هزینه سفر از منطقه i به منطقه j‌یا Aij است. سپس در M سطر بعدی در هر سطر به شما دو عدد مانند xk و yk به شما داده می‌شود که به ترتیب نمایان‌گر مبدا و مقصد سفر k ام اسکندر است. برای فهم بیشتر حتما توضیح نمونه 1 را بخوانید.

ورودی در تمرین اسنپ در شکرستان

 

خروجی

در یک خط یک عدد چاپ کنید که نشان‌دهنده هزینه کل سفر‌های اسکندر است.

 

مثال

ورودی نمونه 1

3 3
1 50 66
72 1 12
91 29 1
1 3
2 3
3 1

 

خروجی نمونه 1

169

توضیح: با توجه به ورودی‌های سوال اسکندر 3 سفر انجام داده است که هزینه سفر اول 66، هزینه سفر دوم 12 و هزینه سفر سوم 91 شده است و در مجموع  169 = 91 + 12 + 66 پرداخت کرده است.

 

ورودی نمونه 2

4 4
277 30 971 789
65 379 158 855
892 92 267 454
449 293 735 533
2 3
4 3
1 3
2 4

 

خروجی نمونه 2

2719

 

کد پایتون سوال تمرین اسنپ در شکرستان

N, M = map(int, input().split()) 

cost_matrix = [] 
for _ in range(N): 
    row = list(map(int, input().split())) 
    cost_matrix.append(row) 

total_cost = 0 
for _ in range(M): 
    x, y = map(int, input().split()) 
    total_cost += cost_matrix[x - 1][y - 1] 

print(total_cost)

 

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

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

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