A Drop of the Programming Sea

یک قطره از دریای برنامه نویسی: وبلاگ امیرحسین مهدی‌نژاد، برنامه‌نویس، مدرس برنامه‌نویسی و دانشجوی مهندسی کامپیوتر

A Drop of the Programming Sea

یک قطره از دریای برنامه نویسی: وبلاگ امیرحسین مهدی‌نژاد، برنامه‌نویس، مدرس برنامه‌نویسی و دانشجوی مهندسی کامپیوتر

● .Codeforces Round #221 (Div. 2) - B. I.O.U

پنجشنبه, ۵ دی ۱۳۹۲، ۰۴:۴۰ ب.ظ

فرض کنید سه نفر به نامهای A و B و C داریم؛ A اندازه ی 20دلار به B، B اندازه ی 20دلار به C بدهکار است. مجموع بدهی ها 40دلار است ولی باید نوعی آنها را سازماندهی کنیم که مجموع بدهی ها کمینه شود، پس اینگونه می نویسیم که A اندازه ی 20دلار به C بدهکار است، CوB به کسی بدهکار نیستند که در اینصورت مجموع بدهی ها 20 بوده و بدهکاری ها، همان حالت قبلی را شکل می دهد.

می خواهیم شکل توسعه یافته ی این مثال را برای nنفر حل کنیم که m بدهکاری بین آنها وجود دارد. به عبارت دیگر، در نهایت برای هر یک از افراد، تفاوت بین کل پولی که باید به او بدهید و پول او باید همان باشد.به ازای هر m و n مطلوب است یافتن کمترین مجموع بدهی هایی که بین آنهاست.

input
4 3
1 2 1
2 3 1
3 1 1
output
0

ورودی:

خط اوّل، شامل عدد طبیعی n و عدد حسابی m به ترتیب نشان دهنده ی تعداد افراد و تعداد بدهی هاست.(n ≤ 100  وm ≤ 104)

در m خط بعدی، در هر خط سه عدد ai و  bi و  ci داده می شود که نشان فرد شماره  aاندازه ی  ci دلار به فرد شماره  bi  بدهکار است. (افراد را از 1 تا n شماره گذاری کنید)

(1 ≤ ai, bi ≤ nai ≠ bi; 1 ≤ ci ≤ 100)

این تضمین شده است که اگر در ورودی داده شده، فرد x به y بدهکار باشد، جای دیگری فرد y به x بدهکار نخواهد بود.


خروجی:

به عنوان خروجی، یک عدد صحیح که برابر با کمینه ی مجموع بدهکاری هاست را چاپ کنید.

پ.ن: در نمونه کادر بالا، شما می توانید تمام بدهی ها را لغو کنید، در نتیجه مجموع بدهی ها 0 خواهد بود.


// A Drop of the Programming Sea - adops.blog.ir #include <iostream> using namespace std; const unsigned int mxn = 1.e3; int person[mxn], res; int main() { int n, m; cin >> n >> m; for(int i=0; i<m; i++) { int a, b, c; cin >> a >> b >> c; person[a] += c; person[b] -= c; } for(int i=1; i<=n; i++) if(person[i] > 0) res += person[i]; cout << res << endl; }

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی