ক্ষুদ্র গৃহপালিত প্রাণী নিয়ে পরীক্ষা-নিরীক্ষায় বিরক্ত হয়ে নোবেল পুরস্কারপ্রাপ্ত এরউইন শ্রডিনগার নিকটতম লেজারটি সন্ধান করার পরিবর্তে জিনিসগুলিতে এটি অঙ্কুর করার সিদ্ধান্ত নিয়েছেন। কারণ ... বিজ্ঞান!
বিবরণ
আপনি দুটি পয়েন্ট যে লেজার মাধ্যমে প্রেরণ করা হবে এবং একটি লেজার মরীচি মাপ দেওয়া হবে, এবং আপনি নির্ধারণ করতে হবে যেখানে লেজার মরীচি আবশ্যক চলে গেছে, পারে গমন এবং করতে পারে না চলে গেছে।
লেজার মরীচিটি অনুভূমিক, উল্লম্ব বা তির্যক হতে পারে। আকার 1 লেজারের মরীচিগুলির জন্য, তারা যথাক্রমে এটি দেখতে দেখতে:
# #
# #
##### # #
# #
# #
তির্যক লেজার মরীচিটিও ফ্লিপ করা যায়। আকার 2 লেজারের বীমগুলি দেখতে দেখতে:
### ##
##### ### ###
##### ### ###
##### ### ###
### ##
সাধারণভাবে, আকারের একটি লেজার মরীচি পেতে (এন), কেবল আকারের লেজার মরীচি নিন (এন -1) এবং উভয় পক্ষের আকারের (1) লেজার মরীচি যুক্ত করুন। চূড়ান্ত উদাহরণ হিসাবে, এখানে একই "বোর্ড" এ দেখানো 3 মাপের সমস্ত সম্ভাব্য লেজার বিম রয়েছে:
###.....#####.....##
####....#####....###
#####...#####...####
.#####..#####..#####
..#####.#####.#####.
...###############..
....#############...
.....###########....
####################
####################
####################
####################
####################
.....###########....
....#############...
...###############..
..#####.#####.#####.
.#####..#####..#####
#####...#####...####
####....#####....###
এই "বোর্ড" এর সর্বদা 20x20 (অক্ষরগুলিতে) মাত্রা থাকবে।
ইনপুট
আপনার প্রোগ্রামটি ইনপুট হিসাবে পাঁচটি পূর্ণসংখ্যা দেওয়া হবে। সেগুলি ক্রমে, x 1 , y 1 , x 2 , y 2 , এবং লেজার বিমের আকার am সেগুলি অবশ্যই সেভাবে নেওয়া উচিত। আপনি যদি চান তবে অর্ডারযুক্ত (x, y) জোড়গুলি অ্যারে, টিপল, তালিকা বা অন্যান্য অন্তর্নির্মিত ডেটা টাইপ হিসাবে নিতে পারেন যা দুটি মান রাখে।
ইনপুট হিসাবে প্রদত্ত দুটি পয়েন্ট উভয়ই বোর্ডের মধ্যে থাকবে এবং এগুলি পৃথক হওয়ার নিশ্চয়তা রয়েছে (অর্থাত্ দুটি পয়েন্ট কখনই এক হবে না)। লেজার রশ্মির আকার আবদ্ধ 1 ≤ size < 20। সর্বদা কমপক্ষে একটি সম্ভাব্য লেজার মরীচি থাকবে যা উভয় বিন্দুর মধ্য দিয়ে যায়।
আউটপুট
আপনার প্রোগ্রামটি অবশ্যই নিম্নলিখিত অক্ষরগুলির একটি 20x20 গ্রিড আউটপুট করবে:
#যদি দুটি সম্ভাব্য লেজার মরীচি যে দুটি পয়েন্টের মধ্য দিয়ে যায় এটিও এই বিন্দুর মধ্য দিয়ে যায়।.যদি কোনও লেজার মরীচি না থাকে যা দুটি পয়েন্ট এবং এই বিন্দুর মধ্য দিয়ে যায়।?সম্ভাব্য লেজার বিমগুলির কিছু যদি তবে সমস্ত না হয় তবে এই বিন্দুটি দিয়ে যায়।Xযদি এটি দুটি মূল ইনপুট পয়েন্টগুলির মধ্যে একটি হয় (এটি ওভাররাইড করে#)।
পরীক্ষার মামলা
7, 7, 11, 3, 1
..............#.....
.............#......
............#.......
...........X........
..........#.........
.........#..........
........#...........
.......X............
......#.............
.....#..............
....#...............
...#................
..#.................
.#..................
#...................
....................
....................
....................
....................
....................
18, 18, 1, 1, 2
#??.................
?X??................
??#??...............
.??#??..............
..??#??.............
...??#??............
....??#??...........
.....??#??..........
......??#??.........
.......??#??........
........??#??.......
.........??#??......
..........??#??.....
...........??#??....
............??#??...
.............??#??..
..............??#??.
...............??#??
................??X?
.................??#
10, 10, 11, 10, 3
?????..????????..???
??????.????????.????
????????????????????
????????????????????
.???????????????????
..??????????????????
????????????????????
????????????????????
????????????????????
????????????????????
??????????XX????????
????????????????????
????????????????????
????????????????????
????????????????????
..??????????????????
.???????????????????
????????????????????
????????????????????
??????.????????.????
3, 3, 8, 10, 4
??????????..........
??????????..........
??????????..........
???X??????..........
???##?????..........
???###????..........
????###????.........
.????###????........
..????###????.......
..?????##?????......
..??????X??????.....
..??????????????....
..???????????????...
..????????????????..
..?????????????????.
..??????????????????
..??????????????????
..????????.?????????
..????????..????????
..????????...???????
উল্লম্ব স্থান সংরক্ষণের জন্য স্ট্যাক স্নিপেটের ভিতরে অবস্থিত নিম্নলিখিত রুবি স্ক্রিপ্ট দিয়ে পরীক্ষার কেসগুলি তৈরি করা হয়েছিল।
বিধি
আপনার প্রোগ্রামটি অবশ্যই পরীক্ষার প্রতিটি ক্ষেত্রে 30 সেকেন্ডের নীচে (একটি যুক্তিসঙ্গত মেশিনে) সমাধান করতে সক্ষম হতে হবে। এটি তাত্পর্যপূর্ণ পরীক্ষা করার মতো, কারণ আমার পরীক্ষার রুবি প্রোগ্রামটি পরীক্ষার সমস্ত ঘটনা কাছাকাছি-ততক্ষণে সমাধান করেছে solved
এটি কোড-গল্ফ , তাই সংক্ষিপ্ততম সমাধানটি জয়লাভ করে।
2 * size - 1। আকার 1 এর 1 পিক্সেল, আকার 2 3 পিক্সেল, আকার 3 5 পিক্সেল (উপরে উদাহরণ দেখুন), আকার 4 7 পিক্সেল।