অসম্পূর্ণ দিকনির্দেশ অনুসরণ করুন


21

আপনার এক বন্ধু আপনাকে শহরের সেরা রেস্তোঁরাগুলির দিকনির্দেশ দিয়েছে। এটি বাম এবং ডান দিকে মোড়ের সিরিজ। দুর্ভাগ্যক্রমে, আপনি কতক্ষণ এই বাঁকগুলির মধ্যে সোজা এগিয়ে যেতে হবে তা উল্লেখ করতে তারা ভুলে গিয়েছিল। ভাগ্যক্রমে আপনার কাছে সমস্ত রেস্তোঁরা সহ একটি রাস্তার মানচিত্র রয়েছে। তারা বুঝতে পারে যে কোন রেস্তোঁরাটি তাদের বোঝায়?

ইনপুট

মানচিত্রটি ASCII অক্ষরগুলির একটি আয়তক্ষেত্রাকার গ্রিড হিসাবে দেওয়া হয়েছে। .একটি রাস্তা, হয় #কোনও অট্টালিকা হয় Aথেকে Zবিভিন্ন রেস্টুরেন্ট আছে। আপনি পূর্ব দিকে গিয়ে উপরের বাম কোণে শুরু করুন। উদাহরণ:

.....A
.#.###
B....C
##.#.#
D....E
##F###

আপনার বন্ধুর নির্দেশাবলী একটি (সম্ভাব্য খালি) স্ট্রিং বা Lগুলি এবং Rগুলিযুক্ত অক্ষরের তালিকা হিসাবে দেওয়া হবে ।

আউটপুট

ইনপুট স্ট্রিংয়ের বাম এবং ডানদিকে মোড়ের সাথে মিলে যায় এমন কোনও পথ আপনি হাঁটতে পারেন, প্রদত্ত যে আপনি তাদের প্রতিটিের আগে কমপক্ষে এক ধাপ এগিয়ে নিয়ে যাওয়ার পাশাপাশি শেষের দিকে যেতে পারেন। বিশেষত এর অর্থ যদি আপনার সাথে স্ট্রিং শুরু Rহয় তবে বাম-সর্বাধিক কলামে তাত্ক্ষণিকভাবে দক্ষিণে যেতে পারবেন না। এর অর্থ হ'ল আপনি ঘটনাস্থলে 180 around ঘুরতে পারবেন না।

আপনি শেষে পৌঁছে যাওয়া ছাড়া আপনি বিল্ডিং বা রেস্তোঁরাগুলি দিয়ে হাঁটতে পারবেন না। আপনি ধরে নিতে পারেন উপরের বাম কোণটি a .

আপনার স্ট্রিং বা তালিকা হিসাবে আপনার সমস্ত রেস্তোঁরা আউটপুট করা উচিত যা আপনার বন্ধুর নির্দেশের সাথে পৌঁছে যেতে পারে।

আপনি ধরে নিতে পারেন যে নির্দেশাবলী কমপক্ষে একটি রেস্তোঁরা নিয়ে যাবে। যেমন একটি একক Lউপরের মানচিত্রের জন্য অবৈধ হবে।

উপরের মানচিত্রের জন্য কয়েকটি উদাহরণ:

<empty> A
R       F
RR      B,D
RL      C,E
RLRL    E
RLLR    C
RLLL    B
RLRR    D
RLRRRR  A,C
RLLLRLL B

বিশেষত নোট করুন যা Rপৌঁছায় না B

আপনি STDIN (অথবা নিকটতম বিকল্প), কমান্ড-লাইন আর্গুমেন্ট বা ফাংশন আর্গুমেন্টের মাধ্যমে ইনপুট নিয়ে কোনও প্রোগ্রাম বা ফাংশন লিখতে এবং STDOUT (বা নিকটতম বিকল্প), ফাংশন রিটার্ন মান বা ফাংশন (আউট) প্যারামিটারের মাধ্যমে ফলাফল আউটপুট করতে পারেন।

স্ট্যান্ডার্ড বিধি প্রযোজ্য।

অতিরিক্ত পরীক্ষার কেস

এখানে একটি বৃহত্তর মানচিত্র, কনর ও ব্রায়নের সৌজন্যে (যা আমি কিছুটা পরিবর্তন করেছি):

.......Y..........................######
.####.....#.##....##..######....#.###.##
B.........#.##.#..##....##...##.#.#P...#
.#.#####..#.##..#.##....##.#....#.####.#
.#.#...C..#.##...G##..#.##.#....#.#....#
.#.#.#.#..#.####.###.#..##.#....#.#.NO.#
.#.#A#.#..#.##...F###...##.#.##.#......#
.#.###....#.##....##....##.#....###....#
.#.....##...##....##...D##........###R.#
.#.##..##...##E...##..######....####...#
.....X....#.#.....................##S.T#
###########.###########M############...#
#................................###.#.#
#.#########.########.######.#.######.#.#
#......V#.....######.IJ...........##.#.#
#########.###......ZH############L##.#.#
#########.##########.###############.#.#
####K##...##########.#....#..........#.#
####....########U......##...#######Q.#.#
#####################################W.#

এবং নির্দেশাবলী এবং তাদের প্রত্যাশিত ফলাফলগুলির কয়েকটি নির্বাচিত তালিকা রয়েছে:

<empty>                                 Y
RR                                      B
RLL                                     Y
RLRR                                    B,C,X
RLLLRRR                                 G
RLRLRLRL                                I,Z
RLLRRRLRRLRR                            C,D,F,G,Y
RLRRLLRLLLRL                            B,C,Y
RLLRRLRRRLLLL                           F,M,N,O,Y
RLRRLLLRRRRLLLL                         F,M,Y
RLRRLRRRRRRRRRR                         E,F,Y
RLRRRLLLRLLRRLL                         M,N,O
RLLRRLRRLRLRLRRLLR                      E,U
RLRLLRLRRLRRRRRLRL                      F,G,I,Z
RLLRRLLRLLRRRLRRLLRR                    W
RLLLRRRLRRLLLLLRLLLLLL                  D,G,X
RLRLLRLRRLRLRRRLRLLLRR                  B,C,E,J,X
RLRLRLLLLRLRRRRRRLRLRRLR                Y
RLRLRRRLRLLLLRLRRLLLLRLLRRL             E,M,X
RLRLLLRRRLLLRLLRLLRLRRLRLRR             B,E,F,K
RLRRRLLLLLLLLLLLLLLLRRRRLLL             A,B

বোনাস প্রশ্ন: একটি ইনপুট রয়েছে যার ফলাফল কেবল I বা কেবলমাত্র U ? যদি তা হয় তবে এর চেয়ে ছোটতম পথটি কী?

উত্তর:


17

পার্ল, 150 149 146 145 141 140 138 136 135 133 130 126 125 124

-F-Xn0i এর জন্য +7 যোগ করা হয়েছে

একটি প্রাথমিক প্রচেষ্টা।

STDIN এ মানচিত্র এবং -i বিকল্পের পরে দিকনির্দেশ সহ চালনা করুন eg

perl -F -Xn0iRL incomplete.pl
.....A
.#.###
B....C
##.#.#
D....E
##F###

সঙ্গে STDIN ^Dবা বন্ধ করুন^Zআপনার অপারেটিং সিস্টেমের যা কিছু কাজ করে করুন।

incomplete.pl:

%P=0;$^I=~s``{%;=!/
/;%P=map{$_|=$F[$^H=$_+=(1,@+,-1,"-@+")[$d&3]]=~/(\w)|#|^$/*~!\$;{$1}}(%P)x@F}$d-=B&$'^u`eg;print%

প্রদত্ত স্কোরটি পাওয়ার জন্য আক্ষরিক নিয়ন্ত্রণের অক্ষর দ্বারা ^ H প্রতিস্থাপন করুন

বোনাস প্রশ্ন:

  • এমন কোনও ইনপুট নেই যা কেবল ফলাফল দেয় I
  • সবচেয়ে কম ইনপুট ফলাফল শুধু তাই Uনয়RLLRRLLRLRLRRLRRLRLRLRRLLR
  • একটি অনন্য সেট ফলাফল প্রয়োজন দীর্ঘতম ইনপুট RLLRRRLRLRLLLRRLRLLLLLRRRLLRRRLLLLLLLRRLRRRRযা দেয়B O R

4
টন Hospel? :)
লিন

14
নামটির সাথে কেবলমাত্র একজন বিদেশী
রয়েছেন

2
@ টনহসপেল আপনাকে এখানে রাখা একটি গৌরব।
msh210

8

পাইথন 2, 180 177 168 163 161 158 বাইট

def a(v,o,c=0,A=0,d='.',O={0}):
 while'.'==d:w=v.find('\n');c+=[1,~w,-1,w+1][A%4];d=v[c];o>v<a(v+' '*w,o[1:],c,ord(o[0])-~A,d);d>v>o<O.add(d)
 return`O`[9::5]

প্যারামিটার vএকটি স্ট্রিং হিসাবে মানচিত্র;oহয় LRপংক্তি।

মিচ শোয়ার্তজ 2 রক্ষা করলেন 3 10 প্রচুর বাইট সংরক্ষণ করেছেন। ধন্যবাদ!

আমি সেট করে O={0}এবং ফিরে দুটি বাইট সংরক্ষণ করেছি `O`[9::5], যা খুব পোর্টেবল নাও হতে পারে: এটি ধরে নেয়hash(0) == 0 , কারণ আমি মনে করি, কারণ এটি উপাদানগুলির ক্রম repr(O)হতে পারে

set([0, 'A', 'B', 'C'])

এবং সৃজনশীলভাবে সেই স্ট্রিংটি কাটলে আমার উত্তর পেয়ে যায়।


আমি মনে করি এটি দীর্ঘস্থায়ী
বাঁকযুক্ত

ওহ, হ্যাঁ, এটি একটি পরম পারফরম্যান্স দুর্যোগ। এটি উদাহরণস্বরূপ গ্রিডগুলির জন্য কাজ করে, যদিও!
লিন

1

সি ++ 465

সি ++ তাই ভার্চুয়াল ...

#include <vector>
#include <iostream>
using namespace std;
#define M m[y][x]
#define A if(M!=46)break
vector<string>m;char n[99];int r(int x,int y,int z,const char *d){for(;;){if(z%2)y=y-2+z;else x=x+1-z;if(y<0||y>=m.size()||x<0||x>=m[y].size())break;if(*d){A;r(x,y,(*d==82?z+3:*d==76?z+1:z)%4,d+1);}else{if(M>64&&M<91)n[M]++;A;}}}int main(int c,char**v){string l;while(getline(cin,l))m.push_back(l);r(0,0,0,c>1?v[1]:"");for(char j=0;j<99;j++)if(n[j])cout<<j<<" ";}

আমি এটি আরও ছোট করার চেষ্টা করব। পরামর্শ স্বাগত জানাই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.