ব্লকবক্স যে হেক্স?


11

কোনও প্রোগ্রামিং ভাষায় একটি প্রোগ্রাম বা একটি ফাংশন লিখুন যা 6 ডিজিটের হেক্সাডেসিমেল ইনপুট / যুক্তি লাগে। ইনপুট / যুক্তিটি 6 টি মান বা 6 টি অক্ষরের স্ট্রিং হতে পারে।

আপনার প্রোগ্রামটি ফাঁকা (+ লাইনফিড) সরবরাহ করে কেবলমাত্র হেক্সাডেসিমালগুলি ধারণ করে এমন অক্ষরের একটি 8 টি অক্ষরের প্রশস্ত আয়তক্ষেত্রাকার ব্লক আউটপুট করা উচিত। আয়তক্ষেত্রাকার ব্লকটি ছোট ব্লকের আকারগুলির সংমিশ্রণ, সরবরাহিত 6 টির প্রতিটি মানের জন্য একটি।

এখানে 2 টি ডিমেস্টেটিভ নমুনা ইনপুট এবং নমুনা বৈধ আউটপুট অনুসরণ করে:

নমুনা ইনপুট :

"464fa6" or [4, 6, 4, 15, 10, 6]

একটি বৈধ সমাধান আউটপুট :

44 66 ff
44 66 ff
   66 ff
aa     f
aaa ffff
aa  ffff
aaa     
    6 44
66666 44

নমুনা ইনপুট :

"35bf12"

একটি বৈধ সমাধান আউটপুট :

55555 22

bbbbbbbb
b b b   
      33
fffff  3
ff  ff  
ffffff 1

নিয়মাবলী:

  1. আউটপুট অবশ্যই একটি আয়তক্ষেত্রাকার আকার হতে হবে

  2. আউটপুটটি যে কোনও উল্লম্ব উচ্চতার হতে পারে তবে এটি অবশ্যই 8 টি অক্ষরের প্রস্থের হতে হবে

  3. "ব্লক শেপ" এর হিসাবে পরিচিত "অভ্যন্তরীণ ব্লকগুলি", অন্য কোনও ব্লক আকারের সাথে সংযোগ স্থাপন করতে পারে না, ব্লক আকারগুলি অবশ্যই ফাঁকা স্পেসগুলির একটি প্রাচীর দ্বারা অনুভূমিকভাবে উল্লম্বভাবে এবং ত্রিভুজভাবে ঠিক 1 অক্ষর দ্বারা পৃথক করা উচিত।

  4. ফাঁকা স্পেসগুলির প্রাচীর বাইরের প্রান্তের সাথে সমান্তরালভাবে চলতে পারে না, আউটপুট প্রান্তে কেবল 1 টি অক্ষরের প্রশস্ত প্রাচীর-প্রান্ত বিদ্যমান থাকতে পারে। আউটপুটটির বহির্মুখী আয়তক্ষেত্রের প্রান্তে কোথাও কোনও লিঙ্কযুক্ত স্থান থাকা উচিত নয়।

  5. ফাঁকা স্পেসগুলির প্রাচীরের প্রস্থ কোনও বিন্দুতে 1 টি অক্ষরের বেশি হওয়া উচিত নয়।

  6. অভ্যন্তরীণ ব্লকের আকারগুলি x অক্ষরের ক্ষেত্রফলের সাথে সমান হওয়া উচিত, যেখানে x সরবরাহ করা হেক্সাডেসিমাল মান এবং আকৃতিটি অক্ষর x এর সমন্বয়ে থাকতে হবে যেখানে x হেক্সাডেসিমাল অক্ষরের প্রতিনিধি।

  7. অভ্যন্তরীণ ব্লকের আকারগুলি যতক্ষণ না আকারের সমস্ত অক্ষর উলম্ব বা অনুভূমিকভাবে সংযুক্ত থাকে এবং ফাঁকা জায়গাগুলির প্রাচীরের নিয়মগুলিকে মান দেয় না ততক্ষণ কোনও রূপ হতে পারে।

  8. 6 টি ব্লক আকারগুলি আউটপুটযুক্ত আয়তক্ষেত্রের অভ্যন্তরে কোনও অভ্যন্তরীণ "ক্রম" এ স্থাপন করা যেতে পারে।

  9. বৈধ ইনপুট পরিসর: প্রতিটি আকারের জন্য 1 ... 15 ("1" ... "চ")। আপনার প্রোগ্রামের ইনপুটটিতে 6 টি হেক্সাডেসিমাল সংখ্যা ছাড়া অন্য কোনও তথ্য থাকা উচিত নয় এবং ইনপুটটি আপনার প্রোগ্রাম / ফাংশনে সরবরাহ করার আগে নমুনাগুলির চেয়ে অন্য কোনওভাবে বাছাই করা উচিত নয়। আপনার সমাধানটি কী ইনপুট ফর্ম্যাটটি ব্যবহার করে তা আমাদের জানান (ইনপুটটিতে হেক্সাডেসিমাল মান ব্যতীত অন্য কোনও তথ্য থাকতে পারে না)।

  10. অভ্যন্তরীণ ব্লকের আকারটি ফাঁকা হতে পারে। গর্তটি ফাঁকা স্পেস অক্ষরের হওয়া উচিত যা ফাঁকা স্পেসগুলির প্রাচীর হিসাবে গণনা করা হয়, যার অর্থ ফাঁকা অভ্যন্তরীণ ব্লকের আকারের গর্তটি 1 টি অক্ষরের বেশি প্রশস্ত হতে পারে না।

বৈধ ফাঁকা আকারের তিনটি উদাহরণ:

aaa
a aaa
aaa

999
9 9
999
9

ffffff
f   ff
ffffff

একটি অবৈধ ফাঁকা আকৃতির একটি উদাহরণ:

ffffff
f   f
f   f
fffff

আমি ধরে নিয়েছি যে সমস্ত ইনপুট সংমিশ্রণ উপরের নিয়ম অনুসারে "সমাধান" করা সম্ভব নয়, অতএব আমি 10 টি নমুনা ইনপুটগুলি তালিকাবদ্ধ করি যা আপনার প্রোগ্রামটি "সমাধান" করতে সক্ষম হবে (সমস্ত যাচাইযোগ্য সমাধানযোগ্য):

 1. 464fa6 (same as the first sample)
 2. 35bf12 (second example input seen above)
 3. 111126
 4. ff7fff
 5. 565656
 6. abcdef
 7. 1357bd
 8. 8c6a42
 9. ab7845
10. 349a67

আপনার প্রোগ্রামটি অনুরোধযোগ্য সময়ে 10 টি নমুনা ইনপুটগুলির কোনও সমাধান করতে সক্ষম হওয়া উচিত। একটি স্ট্যান্ডার্ড ডেস্কটপ কম্পিউটারে অনুরণিত সময়টি 1 ঘন্টার মধ্যে অনুবাদ করুন। যেমন বলুন: 3 গিগাহার্ট ডুয়াল কোর, একটি রেফারেন্সের জন্য 4 জিবি মেমরি।

এটি কোড গল্ফ, সংক্ষিপ্ততম সমাধানটি জয়ী। সমাধানটি একটি সম্পূর্ণ কার্যকারী প্রোগ্রাম বা একটি ফাংশন হতে পারে


বিধি 7 এর অর্থ "সংযুক্ত হওয়া" এর অর্থ কী? এটি কি নিয়মের 5 টি সীমাবদ্ধতার পুনঃস্থাপন যা (আমার ফ্রেসিং) 2x2 ফাঁকা বর্গক্ষেত্রের অস্তিত্বকে নিষিদ্ধ করে?
পিটার টেলর

আমি কিছু পুনঃস্থাপনের জন্য দুঃখিত, তবে নিয়ম 7 রুল 6 এর পুনঃস্থাপনের আরও বেশি যেখানে এটি বর্ণিত হয়েছে যে আকারগুলি অভিন্ন হওয়া উচিত। অন্য কথায় বিধি 7 বলছে যে একটি একক আকৃতি 2 টি পৃথক ছোট আকারে বিভক্ত করা যায় না।
প্লাসেন

6
আমার গড়পড়তা হওয়ার কোনও ইচ্ছা নেই, তবে এই সমস্যাটি কোনওভাবেই উদ্বেগজনক, আকর্ষণীয় বা কোনও প্রাকৃতিকভাবে আনন্দদায়ক বৈশিষ্ট্য দেখানো নয়। এটি কেবল একটি বিমূর্ত চ্যালেঞ্জ এবং আমি দেখতে পাচ্ছি না যে কারও কাছে এমনকি সমস্ত বিধিগুলি পড়ার জন্য প্রয়োজনীয় ধৈর্য থাকবে কেন তা সমাধান করার বিষয়ে কিছু বলা বাহুল্য। আপনার পরের সাথে শুভকামনা যদিও!
বোগদান আলেকজান্দ্রু

1
স্পেসিফিকেশন: যতক্ষণ না এটি ব্লকগুলি পৃথক করে এবং যতক্ষণ না এটিতে 2x2 ব্লক থাকে এবং বাইরের প্রান্তে টানা দুইটি হোয়াইটস্পেস ব্লক থাকে না ততক্ষণ সাদা স্থান কোনও আকার তৈরি করতে পারে?
জন ডিভোরাক

2
এই প্রশ্নটি আসলেই জটিল (বা সম্ভবত আমি একটি দুর্বল সমস্যা সমাধানকারী) ... প্লাসেন আপনার নিজের কোনও সমাধান আছে? যাইহোক, আমি মনে করি হোয়াইটস্পেসের প্রয়োজনীয়তাগুলি ফেলে দেওয়া এবং এটি একটি কোড-চ্যালেঞ্জ তৈরি করা আরও আকর্ষণীয় হত যেখানে স্কোরটি চরিত্রের সংখ্যা এবং ব্লকের উচ্চতা উভয়ের উপর নির্ভর করে (এভাবে এটি তৈরি না করেই এটি অনেক বেশি প্যাক করা উপকারী হবে) এটি একটি হার্ড প্রয়োজন)।
ফায়ারফ্লাই

উত্তর:


1

হাস্কেল, 156

ঠিক আছে, এটি নিয়মগুলি কিছুটা প্রসারিত করে। লাইনব্রেকগুলি ছাড়া আমার কোনও ফাঁকা স্পেস দেয়াল নেই, তাই আমার সমস্ত দেওয়ালের দৈর্ঘ্য 1 আছে।

import Data.List
r=replicate
main=getLine>>=putStrLn.concatMap(\b->unlines$s(head$elemIndices b"0123456789abcdef")b)
s n c|n<9=[r n c,""]|True=r 8 c:s(n-8)c

464fa6 এর জন্য আউটপুট:

4444

666666

4444

ffffffff
fffffff

aaaaaaaa
aa

666666

খুব, খুব কাছের :) তবে নিয়ম 4 পূরণ করা হয়নি, আপনার আউটপুটটির একটি কাল্পনিক আয়তক্ষেত্র তৈরি করে, আপনার ডানদিকের প্রান্তে এক সারিতে 1 টিরও বেশি প্রান্তিককরণ হোয়াইটস্পেস রয়েছে।
প্লাসেন

1

ব্রেনএফ * সি কে - 134 (নতুন লাইন প্রবেশ

>>+[++++++++++>,----------]>++++++[<+++++>-]<++[<]<++++++[>+++++<-]>++>-
>..<<.>>>..<<<.>>>>..<<<.<........>.>>>>..>>>.<<..>>.<..[<]>>.

আমি মনে করি এটি সরল তালিকার উত্তর

স্টিডিনে 6 টি হেক্সাডেসিমাল অক্ষরের মাধ্যমে ইনপুট নেওয়া হয়েছে, তারপরে জমা দেওয়ার জন্য একটি নতুন লাইন রয়েছে।

সম্পাদনা: 6 নিয়মের কারণে এটি ব্যর্থ হয়েছে, যা আমি এখনও অবধি পুরোপুরি উপলব্ধি করতে পারি নি: /

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