ترجمه سوالات سایت های معتبر برنامه نویسی

CodeForces

CodeForces

CodeForces یکی دیگر از سایت های مختص به برنامه نویسی است که پایه آن را روس ها تشکیل می دهند.

اما این سایت تفاوتی با سایت هایی مثل UVa دارند که مسابقه محوری است. این سایت هر چند وقت یکبار مسابقاتی برگزار می کند که کاربران با توجه به عملکرد در آن ها رتبه بندی می شوند.

همچنین پس از مسابقه با ارسال پاسخ می توانید ورودی هایی که داور به برنامه می دهد، پاسخ برنامه خود و پاسخ صحیح را مشاهده کنید و اگر برنامه تان اشتباه بود، اشتباهش را متوجه شوید. این ویژگی خیلی به تمرین برای برنامه نویسی کمک می کند.

در زیر نشانی این سایت را مشاهده می کنید:

http://www.codeforces.com

 

سعی می کنیم ازین پس سوالاتی ازین سایت هم بذاریم و مسابقه ها رو هم اطلاع رسانی کنیم.

۲۷ ارديبهشت ۹۱ ، ۲۲:۳۸ ۰ نظر موافقین ۰ مخالفین ۰
سیّد پارسا میرطاهری

374 - Big Mod

مسأله شماره22:

ترجمه از : سیّد پارسا میرطاهری

374 - Big Mod

محدودیت زمانی : 3 ثانیه

باقی مانده بزرگ

در این سوال باید مقدار زیر را حساب کنید:

                                                                    displaymath25

 

همچنین باید برای مقادیر بزرگ برای  B ، P و M روش سریعی به کار ببرید. ( در این سوال با محدودیت زمانی سر و کار دارید!!!)

 

ورودی

در هر تست سه عدد صحیح B ، P و M در یک خط می آیند.  B و P ، اعداد صحیحی بین 0 و 2147483647 هستند و

M   عدد صحیحی بین 1 و 46340 است.

 

خروجی

در هر تست یک عدد صحیح که حاصل محاسبه است را چاپ کنید.

 

نمونه ها و لینک ها در ادامه مطلب...

ادامه مطلب...
۱۵ فروردين ۹۱ ، ۱۷:۳۲ ۱ نظر موافقین ۰ مخالفین ۰
سیّد پارسا میرطاهری

673 - Parentheses Balance

سلام!نوروز

سال نوتون خیلی مبارک باشه..

و اوّلین مسأله سال 1391 :

مسأله شماره 21:

ترجمه از : سیّد پارسا میرطاهری

673 - Parentheses Balance

محدودیت زمانی : 3 ثانیه

 

تعادل کمان ها

رشته ای شامل   []و() به شما داده می­شود .این نوع رشته درست خوانده می­شود :

  1. اگر رشته ای خالی باشد
  2. اگر A و B درست هستند، AB نیز درست است
  3. اگر A درست است، (A) و [A] هم درست هستند

برنامه ای بنویسید که تعدادی از این نوع رشته را گرفته و درستی آن ها را بررسی کند. می­توانید فرض کنید که بیشترین طول رشته برابر با 128 است.

 

ورودی

ورودی شامل عدد صحیح n و دنباله ای از n رشته است. هر رشته در یک خط می­آید و از ()و [] ساخته شده است.

 

خروجی

دنباله ای از Yes و یا No که نشان دهنده درستی و یا نادرستی رشته هستند،  خروجی را شکل می­دهند.

 

 

نمونه ها و لینک ها در ادامه مطلب...

ادامه مطلب...
۰۷ فروردين ۹۱ ، ۰۱:۳۱ ۰ نظر موافقین ۰ مخالفین ۰
سیّد پارسا میرطاهری

10300 - Ecological Premium

مسأله شماره 20:

ترجمه از : سیّد پارسا میرطاهری

10300 - Ecological Premium

محدودیت زمانی : 3 ثانیه

حق بیمه

کشاورزان آلمانی با توجه به شرایط مزرعه ی خود حق بیمه ای دریافت می کنند. فرض کنید که مساحت زمین کشاورز به مترمربع و تعداد حیوانات داخل آن را می دانید. همچنین میزان طبیعت دوستی و علاقه ی کشاورز به محیط زیست را در قالب یک عدد صحیح بزرگتر از صفر در اختیار دارید. مقدار پولی که کشاورز می­گیرد  با استفاده از این سه ویژگی چنین به دست می آید: ابتدا فضایی که هر حیوان به طور میانگین در زمین اشغال می­کند را به مترمربع حساب می­کنیم. سپس این عدد را در عدد طبیعت دوستی کشاورز ضرب می­کنیم. عدد به دست آمده، مقدار حق بیمه ایست که کشاورز به ازای هر حیوان دریافت می­کند. در نتیجه تنها کافیست عدد را در تعداد حیوانات ضرب کنیم تا مقدار کل حق بیمه دریافتی به دست آید.

 

ورودی

در خط اول ورودی عدد صحیح n (<20) به عنوان تعداد تست ها می­آید. هر تست با عدد صحیح f (0<f<20) که نشان دهنده تعداد کشاورز هاست شروع می شود. در f خط بعدی در هر یک سه عدد می آید که به ترتیب مساحت زمین، تعداد حیوانات و سپس عدد طبیعت دوستی کشاورز می آید. ورودی با پایان فایل اتمام می پذیرد و هیچ عدد صحیحی در ورودی بزرگتر از 100،000 و کوچکتر از 0 نیست.
 

خروجی

برای هر تست یک عدد که جمع حق بیمه های دریافتی کشاورزان در آن تست را نشان می­دهد را به خروجی دهید. این عدد همواره عددی صحیح است. همچنین خط اضافی در خروجی چاپ نکنید.

 

نمونه ها و لینک ها در ادامه مطلب...

ادامه مطلب...
۲۱ اسفند ۹۰ ، ۱۸:۲۹ ۰ نظر موافقین ۰ مخالفین ۰
سیّد پارسا میرطاهری

344 - Roman Digititis

مسأله شماره 19:

ترجمه از : امیر کسری جلال دوست

344 - Roman Digititis

محدودیت زمانی : 3 ثانیه

ارقام رومی

افراد زیادی با عدد گذاری رومی برای اعداد کوچک آشنا هستند. نماد های i ، v ، x ، l و  c نشان دهنده ی مقادیر 1، 5، 10، 50 و 100 هستند. برای نشان دهنده مقادیر دیگر، در صورت لزوم، از مقادیر کوچکتر استفاده می کنیم. مثلا عدد 3 به صورت iii” و مقدار 73 به صورت lxxiii” نشان داده می شوند. بعضی از اعداد که از این قائده مستثنا هستند عبارتند از اعدادی که از 4 و 9 و یا 40 و 90 تشکیل شده اند. نمایش عدد رومی این حالات به ترتیب (`iv"  (4) ، `ix"(9) ، `xl"(40 و(90) `xc"  است.
بنابراین برای مثال اعداد 24، 39، 44، 49، 94 را به ترتیب به صورت “xxiv ، “xxxix”، “xliv” ، “xlix” ، “xciv” نمایش می دهیم.

مقدمه ی بسیاری از کتاب ها صفحاتی دارد که با استفاده از سیستم عددگذاری رومی تنظیم شده اند که با i” شروع می شوند و به ترتیب صعودی ادامه پیدا می کنند. فرض کنید کتاب هایی 100 یا تعداد کمتری صفحه، مقدمه دارند. چه تعدادی کاراکتر i”، “v” ، “x” ، “l”و “c” لازم است تا بتوان مقدمه ی کتابی به تعداد صفحات معین را شماره گذاری کرد؟ مثلا برای 5 صفحه اعداد “i” ، “ii” ، “iii” ، “iv” و “v” استفاده می شوند. یعنی 7 کاراکتر “i” استفاده شده و 2 کاراکتر “v”.

 

ورودی و خروجی

تعدادی عدد در محدوده 1 تا 100 ورودی را تشکیل می دهند و با عدد صفر پایان می پذیرند. برای هر ورودی(به جز 0 ) تعداد کاراکتر های مورد نیاز از هر نوع برای شماره گذاری 1 تا آن عدد را محاسبه کنید و آن ها را به همراه خود عدد، در خروجی چاپ کنید. در زیر قالب صحیح خروجی را می بینید.

 

نمونه ها و لینک ها در ادامه مطلب...

ادامه مطلب...
۱۸ اسفند ۹۰ ، ۱۱:۲۵ ۰ نظر موافقین ۰ مخالفین ۰
سیّد پارسا میرطاهری

ورودی و خروجی

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

 

به نام خدا

توضیح کلی اینکه ورودی کاملاً جدا و مستقل از خروجی است و می شود فرض کرد که در دو صفحه کاملاً جدا از هم قرار دارند، در نتیجه به طور مثال اگر گفته شده که در ورودی ها یک خط خالی می آید (مثلا در سوال Triangle Wave)، نمی­توان برای آن یک دستور Writeln قرار داد و باید مثلاً یک Readln برای خواندن یک خط خالی قرار داد. در ضمن اگر از دستور Read برای خواندن یک عدد استفاده کنیم، لازم نیست خط های خالی را در نظر بگیریم و خود دستور Read تمام کاراکترهای خالی و همچنین خط های خالی را رد می کند تا به یک عدد برسد و آن را می خواند.

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

برای اینکه ورودی ها را درست بخوانیم، در بعضی از سوالات باید از روش زیر استفاده کنیم:

while not SeekEOF do

و یا :

while not SeekEOF(input) do

(این دو با هم معادلند و در نتیجه استفاده از اولی راحت تر است)

و همچنین در ++c می توان نوشت:

  (while (cin>>input

 

این حلقه یعنی اینکه "تا وقتی ورودی ها تمام نشده اند" صرف نظر از اینکه یک سری   (white space)    باقیمانده باشد یا نه. منظور از(WhiteSpace)  کاراکترهای (Space) و (Tab) و (End of Line) هستند.

 

 

۲۳ بهمن ۹۰ ، ۲۲:۱۵ ۱ نظر موافقین ۱ مخالفین ۰
سیّد پارسا میرطاهری

256 - Quirksome Squares

مسئله شماره 18:

ترجمه از: امیر کسری جلال دوست

256 - Quirksome Squares

 

مربع های حقّه باز

 

عدد 3025 یک خصوصیت مهم و قابل توجه دارد : اگر ارقام آن را طوری از هم جدا کنید به طوری که 2 رشته با طول برابر

(25 و 30) تقسیم کنید و مربع آن ها را با هم جمع کنید به همان عدد اولیه (3025) خواهید رسید:

 

 

در این مسئله شما باید تمام اعداد n رقمی که این خاصیت را دارند را بیابید.(عدد زوج n ورودی داده می شود.)

برای مثال ، اعداد چهار رقمی از 0000  شروع می شوند و به 9999  ختم می شوند. توجه داشته باشید که صفر ها هم باید محاسبه شوند، یعنی 0001  که برابر است با  2(01+00)   هم یک عدد حقه باز چهار رقمی است.

تعداد ارقام ممکن است 2، 4، 6 و یا 8 باشد ولی در عین حال حداکثر مقدار 32767 است و برنامه شما باید اعداد خروجی را در این بازه نگه دارد امّا باید به فکر سریع بودن برنامه خود باشید.

ورودی:

ورودی یک فایل متنی است که تعداد ارقام( 2 ، 4 ، 6 و یا 8 ) را هر یک در یک خط در بر میگیرد.

خروجی:

خروجی هم یک فایل متنی است که از خط هایی تشکیل شده که هر یک، یک عدد حقه باز را در خود جای می دهد. ( به ترتیب اعداد ورودی، و برای هر عدد ورودی اعداد حقه باز به ترتیب صعودی قرار دارند.

*نکته : دقت کنید که تعداد ارقام اعداد خروجی با عدد معادل آن در ورودی برابر است. قرار دادن صفر ها را هم فراموش نکنید.

 

نمونه ها و لینک ها در ادامه مطلب...

ادامه مطلب...
۲۳ بهمن ۹۰ ، ۲۱:۴۹ ۰ نظر موافقین ۱ مخالفین ۰
سیّد پارسا میرطاهری

490 - Rotating Sentences

مسئله شماره 17:

 

ترجمه از: سیّد علیرضا خوش قلب

 

490 - Rotating Sentences

محدودیت زمانی : 3 ثانیه

جمله های چرخشی!

 

در جمله های چرخشی شما باید یک مجموعه از ورودی ها را 90 درجه در جهت عقربه های ساعت بچرخانید.پس باید به جای نشان دادن جملات از بالا به پایین و چپ به راست آنها را از بالا به پایین و راست به چپ نشان دهید.

 

ورودی و خروجی:

به عنوان ورودی به برنامه، شما حداکثر 100 جمله که هیچ کدام بیش از 100 حرف نیستند می گیرید.حروف قانونی : خط جدید،فاصله(اسپیس)،نشانه های سجاوندی،ارقام،حروف بزرگ و کوچک انگلیسی(تب ها قانونی نیستند)

خروجی برنامه باید آخرین جمله را به صورت عمودی در ستون سمت چپ و اولین جمله را متعاقبا در آخر و ستون سمت راست چاپ کند.

 

نمونه ها و لینک ها در ادامه مطلب...

ادامه مطلب...
۲۰ بهمن ۹۰ ، ۱۲:۵۰ ۱ نظر موافقین ۱ مخالفین ۰
سیّد پارسا میرطاهری

10450 - World Cup Noise

شانزدهمین سوال ترجمه شد:

 

نویسنده : امیر محمد فرزانه

 

10450 - World Cup Noise

محدودیت زمانی : 3 ثانیه

 

سر و صدای جام جهانی!

"کره،کره". این فریاد حدود 54000 طرفدار فوتبال خوشحال است که تیمشان در کشور خودشان به مرحله ی نیمه نهایی جام جهانی فوتبال راه یافته است. امّا با این که شور و شوق آن ها واقعی است، مردم کره هنوز خیلی توسط طبیعت سازمان یافته اند. برای مثال آنان ترومپت های بزرگی را تدارک دیده اند تا تیمشان را در زمین پشتیبانی کنند. طرفداران می خواهند تا میزان صدا را در طول برگزاری مسابقه ثابت نگه دارند.

ترومپت ها به وسیله گاز فشرده کار می کنند و اگر هوا به مدت 2 ثانیه متوالی وارد ترومپت شود، ترومپت می شکند. بنابراین تا وقتی ترومپت صدا می دهد، همه چیز خوب است امّا هنگام مکث ترومپت، طرفداران باید فریاد بزنند : "کره" !

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

بنابراین در این مسئله شما باید با توجه به عدد صحیح مثبت n به عنوان ورودی ، تعداد الگو های متفاوت ممکن به طول n برای تشویق را محاسبه کنید. همچنین در نظر بگیرید که در یک دنباله به طول n هیچ دو 1 مجاوری دیده نمی شود. برای مثال،  به ازای n = 3  پاسخ برابر با 5 می شود.(دنباله های 000, 001, 010, 100, 101 صحیح هستند، در حالی که دنباله های 011 110, 111 پذیرفتنی نیستند.)

 

ورودی

خط اول ورودی شامل تعداد تست ها می شود و برای هر تست یک عدد صحیح مثبت کوچکتر از 51 در یک خط می آید.

 

خروجی

خروجی هر تست با یک خط شامل “Scenario #i:” آغاز می شود، به طوری که i نشان دهنده ی شماره ی تست است و از یک شروع می شود.سپس در یک خط تعداد دنباله های به طول n را که 1 های مجاور ندارند را در یک خط چاپ کرده و خروجی هر تست را با یک خط خالی پایان دهید.

نمونه ها و لینک ها در ادامه مطلب

ادامه مطلب...
۱۵ بهمن ۹۰ ، ۱۹:۰۰ ۰ نظر موافقین ۱ مخالفین ۰
سیّد پارسا میرطاهری

993 - Product of digits

و ترجمه ی پانزدهمین سوال! :

 

993 - Product of digits

محدودیت زمانی : 3 ثانیه

ضرب ارقام

متناسب با عدد صحیح غیر منفی N  کوچکترین عدد طبیعی ممکن برای Q  را بیابید، به طوری که ضرب تمام ارقام  Q  برابر با N  شود.

ورودی

خط اول ورودی شامل یک عدد صحیح مثبت که نشان دهنده ی تعداد تست ها است، می شود. هر خط در ادامه نماینده ی یک تست است که عدد صحیح غیر منفی N  (0<=N<=109)  را در بر می گیرد.

خروجی

برای هر تست در یک خط عدد طبیعی Q را چاپ کنید و یا اگر Q  وجود ندارد، `-1' را چاپ کنید.

 

نمونه ها و لینک ها در ادامه مطلب

ادامه مطلب...
۰۹ بهمن ۹۰ ، ۲۰:۴۶ ۰ نظر موافقین ۱ مخالفین ۰
سیّد پارسا میرطاهری