Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#1
موضوع مهم شد. تاریخ : شنبه - 26 اسفند 1391 هجری خورشیدی

سلام


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


Ada - Assembler - AWK - C - C# - C++ - C99 strict - CLIPS - Clojure - COBOL - Common - Lisp (clisp)- D(dmd) - Erlang - F# - Factor - Falcon - Fortran - GoGroovy - Haskell - Icon - Intercal - Java - Java7 - JavaScript (rhino) - JavaScript (spidermonkey) - Lua - Nemerle - Nice - Nimrod - Node.js - Objective-C - Ocaml - Oz - PARI/GP - Pascal (fpc) - Pascal (gpc) - Perl - Perl 6 - PHP - Pike - Prolog (swi) - Python - Python 3 - R - Ruby - Scala - Scheme (guile) - Smalltalk - SQL - TclText - VB.NET - Whitespace

خب تقریبا با هر زبانی! میشه برنامه نویسی کرد!

شما باید کدتون رو اول ببرید توی سایت pastebin.ubuntu.com و از قسمت syntax زبان مورد نظرتون رو انتخاب کنید و بعد Paste رو بزنید.

مثال hello world برای سی پلاس پلاس : Ubuntu Pastebin (در ضمن بابت define الکیم عذر می خوام، میخواستم کد طولانی شه!!!)

خب حالا چجوری سوال ها رو بنویسیم؟

محدودیت زمان : {محدودیت زمان}، محدودیت حافظه : {محدودیت حافظه}

سوال {شماره ی سوال} - {اسم سوال}

{متن سوال}

نوع ورودی

{نوع ورودی}

نوع خروجی

{نوع خروجی}

مثال ورودی و خروجی

{مثال ورودی}

{مثال خروجی}

توضیحات

{توضیحات}
[HR][/HR][HR][/HR]
محدودیت زمان : 2 ثانیه، محدودیت حافظه : 256 مگابایت
سوال 1 - عدد آیریسکی

به عدد اولی که هیچ کدوم از ارقامش تکراری نباشن، عدد آیریسکی می گیم. بگید از 1 تا عدد وارد شده ی n چند عدد آیریسکی وجود داره؟

نوع ورودی

n که بین 1 تا 10 به توان 5 است.

نوع خروجی

تعداد اعداد آیریسکی از 1 تا n.

مثال ورودی و خروجی
1
کد
INPUT:
 10
کد
OUTPUT:
4
2
کد
INPUT:
13
کد
OUTPUT:
5
توضیحات

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


[HR][/HR][HR][/HR]

کسی که سوال رو طرح کرده باید تائید کنه که آیا درست حل شده یا نه، برای اینکه طراح بتونه از زبان های مختلف سر در بیاره و تست کیس های مختلف رو بده و امتحان کنه، می تونه از سایت Ideone.com | Online IDE & Debugging Tool >> C/C++, Java, PHP, Python, Perl and 40+ compilers and interpreters استفاده کنه. که توش تست ورودی هم داره.
 
آخرین ویرایش توسط مدیر

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#3
پاسخ : ماراتن برنامه نویسی 92

اینم از جواب اولین سوال...
Ubuntu Pastebin

آفرین خوب بود ولی:

IRYSC 92 Marathon Online Judge
#7
result: success time: 0.13s memory: 3032 kB returned value: 0

input:
10000

output:
631

#8
result: time limit exceeded time: 5s memory: 3028 kB signal: 24 (SIGXCPU)

input:
99999

output: no

من گفتم تا 10 به توان 5، توی 10 به توان 5 - 1 با زمان 5 ثانیه هم time میشه! می خواستم بگم 10 به توانِ 18 گفتم اولین سواله!

باید الگوریتم بهتری بدید ولی همین هم خوبه! مخصوصا اینکه از چیز های خفنی مثل vector توی کدتون استفاده کردید.

البته از نظر من کد کثیف بود! ولی اصل اینه که جواب میده! 10 به توانِ 5 رو بی خیال می شم و سوال بعد رو بدید.



سوال دو رو بگذارم یا خودتون طرح می کنید؟؟؟
 

sinamosavi

New Member
ارسال ها
75
لایک ها
67
امتیاز
0
#4
پاسخ : ماراتن برنامه نویسی 92

محدودیت زمانی: 2 ثانیه، محدودیت حافظه: 256 مگابایت
سوال 2 - جینگولک و زبان برنامه نویسی

جینگولک یک زبان جدید برنامه نویسی برنامه نویسی به نام Yet Another Useless Language ساخته است. در این زبان برنامه نویسی هر خط کد شامل یک string با حروف بزرگ الفبای انگلیسی است. این زبان به ترتیب بر روی کاراکتر های مجاور پردازش انجام داده و مجموع تمامی پردازش ها را به عنوان خروجی بر می گرداند. پردازش روی دو کاراکتر به شکل زیر انجام می شود:


  • اگر مجموع مکان دو رشته در الفبا عددی اول بود جواب پردازش روی آن دو کاراکتر، برابر با -1 است.
  • اگر مجموع مکان دو رشته در الفبا عددی غیر اول فرد بود جواب پردازش روی آن دو کاراکتر، برابر با ضرب جایگاه دو رشته در الفباست.
  • اگر مجموع مکان دو رشته در الفبا عددی غیر اول زوج بود جواب پردازش روی آن دو کاراکتر، برابر با جایگاه حرف اولی در الفبا به توان 3 است.

به شما یک رشته داده می شود. شما باید جواب نهایی پردازش روی آن رشته را به عنوان خروجی برگردانید.

ورودی

یک رشته با طول ماکزیمم 20 است.

خروجی

مجموع پردازش های صورت گرفته روی زوج های دوتایی کاراکتر ها.

مثال

کد
Input:
ANGC
کد
Output:
455
کد
Input:
BCZ
کد
Output:
-2

توضیحات

در مثال اول سه زوج داریم: AN و NG و GC. اولی برابر 14، دومی برابر 98 و سومی برابر 343 است. بنابراین جواب مساوی 455، مجموع این اعداد، است.
در مثال دوم دو زوج داریم: BC و CZ. اولی برابر -1 و دومی برابر -1 است. پس جواب برابر -2 است.
 
آخرین ویرایش توسط مدیر

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#5
پاسخ : ماراتن برنامه نویسی 92

سلام، ببخشید من رفتم خوابیدم! ساعت 2 گذاشتید سوال رو!!!

سوال دو - Ubuntu Pastebin

راستی اگه طول رشته یک باشه باید صفر بده دیگه؟ نه؟
 

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#6
پاسخ : ماراتن برنامه نویسی 92

اگه درست بود سوال بعد رو بگذارم! یا خودتون سوال بعد رو بگذارید. فقط بگید درست بود یا نه؟
 

sinamosavi

New Member
ارسال ها
75
لایک ها
67
امتیاز
0
#7
پاسخ : ماراتن برنامه نویسی 92

سلام، ببخشید من رفتم خوابیدم! ساعت 2 گذاشتید سوال رو!!!

سوال دو - Ubuntu Pastebin

راستی اگه طول رشته یک باشه باید صفر بده دیگه؟ نه؟
شرمنده. من یادم رفت شرط اینکه طول باید بزرگتر مساوی 2 باشه رو بذارم. هرچند تفاوت خاصی نمی کنه.

result: success time: 0s memory: 2900 kB returned value: 0

input:
ABCDEFGHIJKLMNOPQRSTUV

output:
1469

result: success time: 0s memory: 2900 kB returned value: 0

input:
ZZZZZZZZZZZZZZZZZZZZ

output:
333944
 

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#8
پاسخ : ماراتن برنامه نویسی 92

محدودیت زمانی: 2 ثانیه، محدودیت حافظه: 256 مگابایت
سوال 3 - عدد زیبا در مبنای فاکتوریل
هر عدد طبیعی n رو میشه به شکل
نوشت که این نوع نوشتن یکتا هست. مثلا
و یا
، (! یعنی مبنای فاکتوریل)

به عددی زیبا می گیم که همه ی ارقامش متمایز باشن. هدف شما اینه که بگید کوچکترین عدد بزرگتر از عدد داده شده که در مبنای فاکتوریل زیباست، چیه؟

نوع ورودی

n در مبنای 10 کمتر از 1000 و بیشتر از 0

نوع خروجی

کوچکترین عدد بزرگتر از n(یا خودش) که در مبنای فاکتوریل زیبا باشه. (در مبنای ده باید چاپ بشه)

مثال ورودی و خروجی

کد
INPUT:

9
کد
OUTPUT:

10
کد
INPUT:

238
کد
OUTPUT:

238
توضیحات

باز هم مندرآوردی بود و البته چند تا سوال رو با هم مخلوط کردم!
در مثال 2 :
 

sinamosavi

New Member
ارسال ها
75
لایک ها
67
امتیاز
0
#9
پاسخ : ماراتن برنامه نویسی 92

جواب سوال 3:
Ubuntu Pastebin
البته کاملا متوجه کثیف بودن کد و اینا هستم ولی چون می خواستم اون بخشای فاکتوریل به جای (!O(n توی (O(1 اجرا بشه اینجوری کد رو نوشتم.
 

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#10
پاسخ : ماراتن برنامه نویسی 92

جواب سوال 3:
Ubuntu Pastebin
البته کاملا متوجه کثیف بودن کد و اینا هستم ولی چون می خواستم اون بخشای فاکتوریل به جای (!O(n توی (O(1 اجرا بشه اینجوری کد رو نوشتم.
خب آفرین، درسته، ولی خیلی کثیف کاری داشتی و دلیلت هم کاملا برای این کثیف کاریت بیجاست، به همین خاطر الگوریتم بردن توی مبنای فاکتوریل رو بهت می گم:

فرض کنید
پس
،
و ... (چرا؟)

سوال بعدی رو هم بگذارید.
 
ارسال ها
66
لایک ها
32
امتیاز
18
#11
پاسخ : ماراتن برنامه نویسی 92

خب آفرین، درسته، ولی خیلی کثیف کاری داشتی و دلیلت هم کاملا برای این کثیف کاریت بیجاست، به همین خاطر الگوریتم بردن توی مبنای فاکتوریل رو بهت می گم:

فرض کنید
پس
،
و ... (چرا؟)

سوال بعدی رو هم بگذارید.
واضح نیست a3 چیه؟
می شه ادامه شو بنویسین
 
ارسال ها
38
لایک ها
3
امتیاز
0
#12
پاسخ : ماراتن برنامه نویسی 92

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

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#14
پاسخ : ماراتن برنامه نویسی 92

محدودیت زمانی: 2 ثانیه، محدودیت حافظه: 256 مگابایت

سوال 4 - انتخاب اسم برای سوال بعدی که من طرح خواهم کرد!

برای سوال بعدی که می خوام بدم هیچ اسمی پیدا نکردم!
به مجموع مکان های حروف یک رشته، بوق اون رشته می گیم، مثلا بوق رشته ی "abc" برابر 1+2+3=6 است.
به یک سری از کاراکتر های متوالی در یک رشته، زیر رشته می گیم، مثلا "abc" یک زیر رشته از "gsabck" است.
شرطی که برای اسم سوال بعدی هست، اینه که مجموع بوق تمامِ زیر رشته های اون اسم، یک عدد آیریسکی بشه.

سوال 1 - عدد آیریسکی​
به عدد اولی که هیچ کدوم از ارقامش تکراری نباشن، عدد آیریسکی می گیم.


نوع ورودی

یک رشته با حداکثر طول 20 (حروف می توانند کوچک یا بزرگ باشند)

نوع خروجی

اگه این رشته بتونه اسم مناسبه برای سوال بعد باشه، "YES" چاپ کنه وگرنه "NO".

مثال برای ورودی و خروجی

کد
INPUT: 

ABC

OUTPUT:

NO
کد
INPUT: 

Bob

OUTPUT:

NO
 
آخرین ویرایش توسط مدیر

sinamosavi

New Member
ارسال ها
75
لایک ها
67
امتیاز
0
#16
پاسخ : ماراتن برنامه نویسی 92

محدودیت زمانی: 2 ثانیه، محدودیت حافظه: 256 مگابایت


سوال 5 - سرباز ها

خنگولک داره از دور یک سری سرباز که همه با هم دشمن هستن نگاه می کنه. هر کدوم از سرباز ها در مختصاتی بین -10[SUP]4[/SUP] تا 10[SUP]4[/SUP] قرار دارن. هر کدوم یک تیر می زنن و اون تیر هم به یک جهت(منفی یا مثبت) با مقدار x میره. خنگولک مقدار و جهت هر تیر و موقعیت سربازا رو یادداشت کرده. حالا می خوایم بدونیم آیا دو تا سرباز وجود دارن که اولی دومی رو زده باشه و اولی دومی رو؟

نوع ورودی

در خط اول تعداد سربازا(n بین 1 تا 100) وارد میشه. در n خط بعدی جای سرباز و جهت و اندازه جلو رفتن تیرش میاد.

نوع خروجی

اگه جواب درست بود "YES" و اگر غلط بود "NO" رو به عنوان خروجی بدید.

مثال برای ورودی و خروجی
کد
5
2 -10
3 10
0 5
5 -5
10 1
کد
YES
کد
3
0 1
1 1
2 -2
کد
NO
 
آخرین ویرایش توسط مدیر

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#17
پاسخ : ماراتن برنامه نویسی 92

سوال 5 - Ubuntu Pastebin

البته سوال گنگ بود، من اول حل کردم ولی مثال 2 رو YES میداد، چون فکر می کردم هر کس در مسیر گلوله باشه، تیر می خوره، چون توی این مثال 3 نفر هست و :


<---------2--------------------1--------------------0------------------------------------------------------------------>
| | |
نفر 0 به نفر 1 شلیک می کنه، نفر 1 به نفر 2 و نفر 2 یک شلیک به سمت عقب می کنه، پس هم از مخ(!) نفر 1 رد میشه هم نفر 2! پس در این حالت نفر 1 به دو شلیک کرده، و نفر دو هم به یک شلیک کرده، که باید جواب YES حاصل شه، بعد گفتم شاید منظورتون این بوده که دقیقا فاصله فرد شلیک کننده تا تیر خورنده (!) برابر فاصله ی تیر باشه! (خیلی عجیب توضیح دادم!)

ویرایش:

چی شد؟ درست بود؟
 
آخرین ویرایش توسط مدیر

AlimA

New Member
ارسال ها
167
لایک ها
178
امتیاز
0
#18
پاسخ : ماراتن برنامه نویسی 92

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

سوال 6: ساختمان ها

n ساختمان در یک ردیف قرار گرفته اند که ارتفاع هر کدام از آنها یک عدد طبیعی بین 1 وn است ، همچنین ارتفاع هیچ دو ساختمانی با هم برابر نیست.

یک ساختمان از سمت چپ دیده می شود اگر تمام ساختمان های سمت چپ آن ارتفاعی کمتر از آن داشته باشند ، به همین ترتیب یک ساختمان از سمت راست دیده می شود ، اگر هر ساختمان سمت راست آن ارتفاعی کمتر از آن داشته باشد.

به شما n ، تعداد ساختمان هایی که از سمت چپ دیده می شوند و تعداد ساختمان هایی که از سمت راست دیده می شوند داده شده ، شما باید به دست بیاورید چند طریق برای قرار دادن ساختمان ها وجود دارد.


استاندارد ورودی :

در سطر اول ورودی سه عددn < 100 وleft و rightآمده اند که به ترتیب نشان دهنده تعداد ساختمان ها ، تعداد ساختمان هایی که از سمت چپ دیده می شوند و تعداد ساختمان هایی که از سمت راست دیده می شوند هستند.

استاندارد خروجی :

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

نمونه :
ورودی نمونه خروجی نمونه
3 2 2 2
ورودی نمونه خروجی نمونه
3 2 1 1
ورودی نمونه خروجی نمونه
5 3 2 18



محدودیت ها :

زمان اجرا ۱ ثانیه

حافظه مجاز ۱۲۸ مگابایت
 

sinamosavi

New Member
ارسال ها
75
لایک ها
67
امتیاز
0
#19
پاسخ : ماراتن برنامه نویسی 92

سوال 5 - Ubuntu Pastebin

البته سوال گنگ بود، من اول حل کردم ولی مثال 2 رو YES میداد، چون فکر می کردم هر کس در مسیر گلوله باشه، تیر می خوره، چون توی این مثال 3 نفر هست و :


<---------2--------------------1--------------------0------------------------------------------------------------------>
| | |
نفر 0 به نفر 1 شلیک می کنه، نفر 1 به نفر 2 و نفر 2 یک شلیک به سمت عقب می کنه، پس هم از مخ(!) نفر 1 رد میشه هم نفر 2! پس در این حالت نفر 1 به دو شلیک کرده، و نفر دو هم به یک شلیک کرده، که باید جواب YES حاصل شه، بعد گفتم شاید منظورتون این بوده که دقیقا فاصله فرد شلیک کننده تا تیر خورنده (!) برابر فاصله ی تیر باشه! (خیلی عجیب توضیح دادم!)

ویرایش:

چی شد؟ درست بود؟
فرض کنید که تیر ها رو هوایی می زنن. یعنی اگر 0 بخواد 2 رو بزنه دیگه به 1 نمیخوره. الان توی تست کیس دوم،صفر یک رو میزنه. یک دو رو میزنه و 2 صفر رو میزنه. هیچ زوجی وجود نداره که هر دو همدیگه رو زده باشن. ولی توی تست کیس اول، صفر پنج رو میزنه و پنج صفر رو.
 

Yousefi

Well-Known Member
ارسال ها
432
لایک ها
602
امتیاز
93
#20
پاسخ : ماراتن برنامه نویسی 92

محدودیت زمانی: 2 ثانیه، محدودیت حافظه: 256 مگابایت



سوال 6 - شهرهای بژستان


بژستان n شهر دارد، که با 1 تا n نام گذاری شده.بعضی از این شهر ها با یک جاده به هم متصل هستند به طوری که از هر شهر می توان سفر کرد و به شهر دیگر رسید. به جاده ای که با تخریب آن، دو شهر مثل A و B وجود داشته باشند که دیگر نتوان از شهر A به شهر B رفت، جاده ی مهم می گوییم، هدف شما این است که بگویید، شهر داده شده، چند جاده ی مهم دارد؟

نوع ورودی

ورودی در n خط است، در هر خط n عدد بولیین وجود دارد. به طوری که عدد i-اُم از خط j-اُم، نشان دهنده ی متصل بودنِ دو شهر i و jاست، اگر 1 بود یعنی آن دو شهر به هم متصل اند و در غیر این صورت، متصل نیستند. (n < 10[SUP]2[/SUP])


نوع خروجی

تنها یک عدد صحیح، که نشان دهنده ی تعداد جاده های مهم است.

مثال

کد
0 1 0
1 0 1
0 1 0
کد
2
[HR][/HR]
کد
[LEFT]
0 1 1
1 0 1
1 1 0[/LEFT]
کد
0
توضیحات

این سوال هم باز مندرآوریه!

در مورد اولین تست : شهر 1 به 2 وصله و شهر 2 به 3، هر کدوم از این جاده ها رو حذف کنیم دیگه نمیشه از شهر 1 به شهر 3 رفت.
و دومین تست کیس هم : همه ی شهر ها به هم وصل ان و اگه هر کدوم رو حذف کنیم، هیچ اتفاقی نمی افته!
 
آخرین ویرایش توسط مدیر
بالا