ঠিক কভার ধাঁধা


10

প্রতিদ্বন্দ্বিতা

গোষ্ঠীযুক্ত চিঠিগুলির একটি সেট দেওয়া, বোর্ডে তাদের এমনভাবে সাজিয়ে রাখুন যাতে তারা পুরো অঞ্চলটি কভার করে।

বোর্ডের প্রতিনিধিত্ব (ওরফে শিপ ডেক)

  • বোর্ডটি একটি 6x6 গ্রিড।
  • সর্বদা 36 টি স্কোয়ার থাকবে।
  • কলামগুলি এএফ চিহ্নিত করা হয়েছে।
  • সারিগুলি 1-6 চিহ্নিত করা হয়েছে।

উদাহরণ:

    A   B   C   D   E   F
  +---+---+---+---+---+---+
1 :   :   :   :   :   :   :
  +---+---+---+---+---+---+
2 :   :   :   :   :   :   :
  +---+---+---+---+---+---+
3 :   :   :   :   :   :   :
  +---+---+---+---+---+---+
4 :   :   :   :   :   :   :
  +---+---+---+---+---+---+
5 :   :   :   :   :   :   :
  +---+---+---+---+---+---+
6 :   :   :   :   :   :   :
  +---+---+---+---+---+---+

ইনপুট (ওরফে ক্র্যাটস)

  • গোষ্ঠীযুক্ত অক্ষরের সেট সমেত একটি মাল্টলাইন স্ট্রিং।
  • ক্রেটগুলি অভিন্ন অক্ষরের গ্রুপ থেকে তৈরি করা হয়।
  • ক্রেটগুলি অপরিবর্তনীয়, যার অর্থ এগুলি ঘোরানো বা উল্টানো যায় না।
  • প্রতিটি ক্রেটটির প্রারম্ভিক বিন্দু উপরের বাম দিকে থাকে (ডেকের উপর একটি ক্রেট সরিয়ে নেওয়ার সময় অ্যাকাউন্টে নেওয়া উচিত)।
  • একটি ক্রেটের উপরের বাম দিক থেকে, নিম্নলিখিত অভিন্ন স্কোয়ারগুলি কেবল ডান বা নীচে হতে পারে।
  • কোনও অক্ষর একটি ক্রেট প্রতিনিধিত্ব করতে ব্যবহার করা যেতে পারে। ক্রেটগুলি সর্বদা চিঠিতে শুরু হয় [a]এবং বর্ণমালা উপরে চলে আসে।
  • ক্রেটগুলি তাদের চিঠি দ্বারা লেবেলযুক্ত (যেমন ক্রেট এ, ক্রেট বি, ইত্যাদি)
  • ক্রেটের সংখ্যা পৃথক হতে পারে (প্রদত্ত উদাহরণ সত্ত্বেও এটি সর্বদা 10 নয়)।
  • প্রতি লাইনে ক্রেটের প্রতিটি ব্লককে পৃথক করে 24 টি অক্ষর রয়েছে। ([ক] শুরু করার জন্য [খ] ২৪ টি অক্ষর দ্বারা পৃথক হওয়া ইত্যাদি)

উদাহরণ:

[a][a][a]               [b]                     [c][c]               
      [a]               [b][b][b]                  [c]               
      [a]               [b][b]                                       

[d]                     [e]                     [f][f][f][f][f]      
[d][d]                  [e]                                          
[d][d]                  [e]                                          
                        [e]                                          
                        [e][e]                                       

[g]                     [h]                     [i]                  
[g]                                             [i]                  
                                                [i]                  

আউটপুট

এটি প্রয়োজনীয় যে আপনি কমান্ডগুলির একটি সিরিজ মুদ্রণ করুন যা ডেকের উপরে ক্রেটগুলি রাখে যাতে এটি সম্পূর্ণরূপে আচ্ছাদিত থাকে (খালি স্থান নেই)।

কমান্ড ফর্ম্যাটটি এর মতো:

HAUL <crate> TO <column> <row>

অর্থাৎ HAUL E TO A 1

স্পষ্টতার জন্য, সর্বদা প্রদত্ত ইনপুটটির জন্য একটি সমাধান থাকবে।

পরীক্ষার কেস <- আরও তথ্যের জন্য ক্লিক করুন।

ইনপুট

[a][a][a]               [b]                     [c][c][c]            
   [a][a]               [b]                                          
   [a]                  [b][b]                                       
                        [b][b]                                       

[d]                     [e]                     [f]                  
[d]                                             [f]                  
[d]                                             [f]                  
[d]                                                                  
[d]                                                                  

[g][g]                  [h]                     [i]                  
                                                [i][i]               
                                                   [i]               
                                                   [i][i]            

[j][j][j]                                                            

আউটপুট

HAUL I TO A 1
HAUL B TO A 3
HAUL A TO B 1
HAUL J TO D 6
HAUL D TO F 1
HAUL F TO E 1
HAUL C TO C 5
HAUL G TO D 4
HAUL E TO D 3
HAUL H TO C 6

ফলাফল:

    A   B   C   D   E   F
  +---+---+---+---+---+---+
1 : i : a : a : a : f : d :
  +---+---+---+---+---+---+
2 : i : i : a : a : f : d :
  +---+---+---+---+---+---+
3 : b : i : a : e : f : d :
  +---+---+---+---+---+---+
4 : b : i : i : g : g : d :
  +---+---+---+---+---+---+
5 : b : b : c : c : c : d :
  +---+---+---+---+---+---+
6 : b : b : h : j : j : j :
  +---+---+---+---+---+---+

স্কোরিং

এটি তাই অক্ষরের মধ্যে সংক্ষিপ্ত উত্তরটি জিততে পারে।


কেউ কি ধরে নিতে পারেন যে কোনও ক্রেটের কোনও গর্ত কখনও থাকবে না?
জোনাথন ফ্রেচ

আমি ধরে নিচ্ছি সেখানে সর্বাধিক ছাব্বিশটি ক্রেট থাকতে পারে?
জোনাথন ফ্রেচ

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

উত্তর:


5

পাইথন 3.6, 435 437 385 331 বাইট

F()ক্রেট স্ট্রিং সহ কল করুন ।

def R(b,d,i=0):
 if not d:return 1
 (k,x),*d=d
 while x:
  if x&b<1and R(b|x,d):print(f'HAUL {k.upper()} TO {i%7+65:c} {i//7+1}');return 1
  i+=1;x>>=1
def F(t,d={},e={}):
 r=c=0
 for a in t:
  if'`'<a<'{':e[a]=x,y=e.get(a,(r,c));d[a]=d.get(a,0)+(1<<(48-(r-x)*7-(c-y)//3))
  elif'\n'==a:r+=1;c=-1
  c+=1
 R(4432676798719,d.items())

এটি আরও অনেক গল্ফ পরিচালিত:

  1. reলাইব্রেরি ব্যবহার না করে সরাসরি ক্রেট স্ট্রিংটি পার্স করুন ।
  2. ক্রেটের একটি সেটের প্রথম স্থানাঙ্ক সংরক্ষণ করতে সেটডেফল্ট ব্যবহার করা হয়েছে, যাতে ক্রেট স্ট্রিংটিকে বিশ্লেষণ করার সময় বিটমাস্ক তৈরি করা যায়। লুপের জন্য একটি দূর করা।
পূর্ববর্তী সংস্করণ
import re
def R(b,d,i=0):
 if not d:return 1
 (k,x),*d=d
 while x:
  if not x&b and R(b|x,d):print(f'HAUL {k.upper()} TO {i%7+65:c} {i//7+1}');return 1
  i+=1;x>>=1
def F(t,d={},n=0):
 for r in t.split('\n'):
  for m in re.finditer(r'(.)]',r):d[m[1]]=d.get(m[1],[])+[(n,m.start())]
  n+=1
 R(4432676798719,[(k,sum(1<<(48-(r-v[0][0])*7-(c-v[0][1])//3)for r,c in v))for k,v in d.items()])

অপ্রয়োজনীয় লুপগুলি অপসারণ করতে কোডটি পুনর্গঠিত।

  1. পূর্ববর্তী কোডটি ক্রেটের সমস্ত অবস্থানের একটি তালিকা তৈরি করেছিল F()এবং তারপরে তালিকাটির মধ্যে পুনরাবৃত্তি হয়েছিল R()। নতুন কোড একটি ক্রেটের একটি অবস্থান তৈরি করে F()এবং R()সমস্ত সম্ভাব্য অবস্থানের চেষ্টা করে।

  2. পূর্ববর্তী কোডে, R()একটি সম্ভাব্য সমাধান সংগ্রহ করে aএবং F()তারপরে ফিরে আসা সমাধানটির মাধ্যমে পুনরাবৃত্তি হয়। নতুন কোডে, R()HAUL কমান্ডগুলি সরাসরি মুদ্রণ করে

পূর্ববর্তী সংস্করণ
import re
def R(b,d,a=[]):
 if not d:yield a
 for x in d[0]:
  if not x&b:yield from R(b|x,d[1:],a+[x])
def F(t,d={},n=0):
 for r in t.split('\n'):
  for m in re.finditer(r'(.)]',r):d[m[1]]=d.get(m[1],[])+[(n,m.start())]
  n+=1
 for k,j in enumerate(next(R(4432676798719,[[sum(1<<(48-(r-v[0][0])*7-(c-v[0][1])//3)for r,c in v)>>i for i in range(48)]for k,v in d.items()]))):x=51-len(bin(j));print(f'HAUL {k+65:c} TO {x%7+65:c} {x//7+1}')

ব্যাখ্যা

মূল ধারণাটি হ'ল জাহাজের ডেক এবং ক্রেটগুলি বিট ম্যাপ হিসাবে উপস্থাপন করা। বিটম্যাপ ব্যবহার করে, ক্রেট সরিয়ে নেওয়া তার বিটম্যাপের শিফট হয়ে যায় এবং ক্রেটগুলির মধ্যে ওভারল্যাপের জন্য পরীক্ষা করা কিছুটা বুদ্ধিমান AND হয়ে যায় এবং শূন্যের জন্য পরীক্ষা হয়।

অবরুদ্ধ কোড:

import re

def F(crate_string):                                                                 #  3
  coords = {} 
  row_no = 0 

  for row in crate_string.split('\n'):                                               #  7

    for match_obj in re.finditer('(.)]', row):                                       #  9

      crate_name = match_obj[1]                                                      # 11
      col_no = match_obj.start()                                                     # 12
      coords[crate_name] = coords.get(crate_name, []) + [(row_no, col_no)]           # 13

    row_no += 1

  normed = {k:[(r-v[0][0], (c-v[0][1])//3) for r,c in v] for k,v in coords.items()}  # 17
  bitmaps = [(k,sum(1<<(48 - r*7 - c) for r,c in v)) for k,v in normed.items()]      # 18

  R(4432676798719, bitmaps)                                                          # 20

def R(used, bitmaps):                                                                # 22
  if not bitmaps:                                                                    # 23
    return True                                                                      # 24
  shift = 0                                                                          # 25
  (crate_name, crate_bitmap),*bitmaps = bitmaps                                      # 26

  while crate_bitmap:                                                                # 28
    if not used & crate_bitmap:                                                      # 29
      if R(used | crate_bitmap, bitmaps):                                            # 30
        print(f'HAUL {crate_name.upper()} TO {shift%7 + 65:c} {shift//7 + 1}')       # 31
        return True                                                                  # 32

    shift += 1                                                                       # 34
    crate_bitmap >>= 1                                                               # 35

  return False                                                                       # 37

F()ক্রেট সংজ্ঞা স্ট্রিংকে বিশ্লেষণ করে বিট মানচিত্র তৈরি করে। একটি রেজেক্স ক্রেটগুলির জন্য ক্রেট সংজ্ঞা স্ট্রিংয়ের প্রতিটি লাইন অনুসন্ধান করে (9 লাইন) ('' 'এর পরে একটি চিঠি)। কোনও মিল খুঁজে পাওয়া গেলে, চিঠিটি (11-13 লাইন) দ্বারা তৈরি একটি অভিধানে সংশ্লিষ্ট (সারি, কর্ন) যুক্ত করা হয়। উদাহরণস্বরূপ সমস্যাটিতে প্রদত্ত ক্রেট সংজ্ঞা স্ট্রিং:

coords = {'a': [(0, 5), (0, 8), (0, 11), (1, 5), (1, 8), (1, 11)], 
          'b': [(0, 29), (1, 29), (2, 29)], 
               ... }

প্রতিটি ক্রেটের স্থানাঙ্কগুলি স্বাভাবিক করা হয় (লাইন 17), যাতে প্রতিটি ক্রেট শুরু হয় (0,0) এবং প্রতিটি ব্লক এক ইউনিট প্রশস্ত (পরিবর্তে 3 লা '[এ]') হয়।

normed = {'a': [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)],
          'b': [(0, 0), (1, 0), (2, 0)],
               ... }

এরপরে বিটম্যাপটি প্রতিটি ক্রেটের জন্য সাধারণীকৃত স্থানাঙ্কের (লাইন 18) এর উপর ভিত্তি করে তৈরি করা হয়।

ডেক একটি 7 এক্স 7 গ্রিড হিসাবে গণ্য করা হয়। যখন কোনও আকার বোর্ড থেকে প্রসারিত হয় তখন সনাক্ত করতে কলাম 'জি' এবং সারি 7 ব্যবহার করা হয়। বিটম্যাপে একটি 1 থাকে যদি ক্রেটগুলি ডেকের সাথে সংশ্লিষ্ট বর্গটি দখল করে। বিটস 48 থেকে বিট 42 এ 1 এর A7 স্কোয়ারের সাথে সামঞ্জস্য বিট, 41 থেকে 35 বিট বি 1 থেকে বি 7 এর স্কোয়ারের সাথে সামঞ্জস্য হয়।

bitmaps = [('a', 0b1110000_1110000_0000000_0000000_0000000_0000000_0000000),
           ('b', 0b1000000_1000000_1000000_0000000_0000000_0000000_0000000),
           ...
           ]

R(used, bitmaps)তারপরে বিটম্যাপগুলি ব্যবহার করে ক্রট প্লেসমেন্টগুলি অনুসন্ধান করতে যা একই স্কোয়ারে দুটি ক্রেট রাখার চেষ্টা করে না to usedএটি একটি বিটমাস্ক যা নির্দেশ করে যে কোন স্কোয়ারগুলি ব্যবহার করা যাবে না কারণ তারা ইতিমধ্যে একটি ক্রেট দখল করেছে বা তারা বোর্ডের বাইরে রয়েছে (যেমন, কলাম জি এবং সারি 7)। bitmapsক্রেটগুলির একটি তালিকা যা এখনও স্থাপন করা দরকার।

পুনরাবৃত্তির জন্য বেস কেসটি যখন আর কোনও ক্রেট রাখেনি, bitmapsযেমন খালি থাকে (লাইন 23)। এক্ষেত্রে একটি সমাধান পাওয়া গেছে তা নির্দেশ করতে সত্যটি ফিরে আসে।

অন্যথায়, একটি ক্রেট নাম এবং এর বিটম্যাপ বিটম্যাপের তালিকা (পংক্তির 26) থেকে পপ আপ হয়। যদিও ক্রেট বিটম্যাপটি খালি নেই (লাইন ২৮), বর্তমান ক্রেট স্থান নির্ধারণ করুন, ক্রেট বিটম্যাপ দ্বারা প্রতিনিধিত্ব করা হয়েছে, পূর্বে রাখা কোনও ক্রেটগুলির সাথে দ্বন্দ্ব রয়েছে কিনা তা পরীক্ষা করে দেখুন। 29 লাইনে not used & crate_bitmapমিথ্যা, যদি usedএবং crate_bitmapউভয়ের একই বিট পজিশনে 1 থাকে যা সংঘাতের ইঙ্গিত দেয়। যদি কোনও বিরোধ না হয়, R()তবে চেষ্টা করুন এবং অবশিষ্ট ক্রেটগুলি রাখার জন্য পুনরাবৃত্তভাবে (লাইন 30) বলা হয়।

যদি পুনরাবৃত্তিযোগ্য কলটি R()সত্য বলে প্রত্যাবর্তন করে তবে এর অর্থ হ'ল একটি সমাধান পাওয়া গেছে এবং ক্রেটের বর্তমান স্থান নির্ধারণ সেই সমাধানের অংশ। সুতরাং ক্রেটগুলি সরানোর জন্য সংশ্লিষ্ট কমান্ডটি মুদ্রিত হয় এবং সত্যটি পুনরাবৃত্ত কলগুলি প্রচার করা হয় (লাইন 31-32)।

যখন তৈরি করা হয় F(), প্রতিটি ক্রেট বিটম্যাপ ডেক স্কোয়ারগুলি উপস্থাপন করে যেগুলি ক্রেটগুলির দ্বারা দখল করা হবে যদি তারা অবস্থান 1 এ রাখে। একটি বিটম্যাপটি এক বিটকে ডানদিকে সরিয়ে ক্রেটগুলি এ 2-তে স্থানান্তরিত করার সাথে সম্পর্কিত। একটি সাত বিট ডান শিফট ক্রেটগুলিকে বি 1 এ স্থানান্তরিত করার অনুরূপ, উদাহরণস্বরূপ, নিম্নলিখিত বিটম্যাপগুলি বিভিন্ন পজিশনে ক্রেটকে 'এ' উপস্থাপন করে:

0b1110000_1110000_0000000_0000000_0000000_0000000_0000000  represent crates 'a' at A1
0b0111000_0111000_0000000_0000000_0000000_0000000_0000000  represent crates 'a' at A2
0b0011100_0011100_0000000_0000000_0000000_0000000_0000000  represent crates 'a' at A3
                                 ...
0b0000000_1110000_1110000_0000000_0000000_0000000_0000000  represent crates 'a' at B1
                                 ...

যদি ক্রেটগুলির একটি সম্ভাব্য স্থান নির্ধারণ না করে কারণ এটি পূর্ববর্তী ক্রেট (লাইন 30) এর সাথে দ্বন্দ্ব করে বা বাকি ক্রেটগুলির বৈধ অবস্থান নেই (31 লাইন)। ক্রেটগুলি বিটমাস্কটি ডান এক বিট (লাইনে 35) স্থানান্তরিত করে একটি পৃথক অবস্থানে স্থানান্তরিত করা হয়। Shiftবিট ম্যাপটি কত স্থান স্থানান্তরিত হয়েছে তা ট্র্যাক করে রাখে, যা ক্রেটের বর্তমান অবস্থার সাথে মিলে যায়।

যদি বিটম্যাপটি খালি (শূন্য) থাকে তবে এটি নির্দেশ করে যে সমস্ত সম্ভাব্য প্লেসমেন্ট চেষ্টা করা হয়েছে। ব্যর্থতা নির্দেশ করতে মিথ্যা ফিরিয়ে দেওয়া হয়েছে (লাইন 37) যাতে R()পুনরাবৃত্তির আগের কলটি তার ক্রেটগুলির জন্য আরেকটি স্থান নির্ধারণের চেষ্টা করবে।

ক্রেটগুলি ডেকের পাশ থেকে প্রসারিত না হয় তা নিশ্চিত করার জন্য, কলাম জি এবং সারি 7 এর সাথে সম্পর্কিত বিটগুলি usedপ্রাথমিক কলটিতে R()(লাইন 20) সেট করা আছে set

4432676798719 সম্পর্কিত খালি ডেক হয় 0b0000001000000100000010000001000000100000011111111


চমৎকার কাজ! আমি যদিও পরীক্ষার ক্ষেত্রে এর একটিতে এটি চেষ্টা করেছি এবং এটি 0 টি সারিতে ক্রেট তোলার চেষ্টা করেছে, তবে এটি একটি বৈধ সারি নয়। কেবল সারি রয়েছে 1-6। ভাবেন এটি বিভাগে কেবল একটি +1 প্রয়োজন। :)
জোনাথন পিকাজো

@ জেএমপিচাজো - এটি ঠিক করেছেন।
রুট টু

5

পাইথন 2 , 864 বাইট

  • বাগ খুঁজে পাওয়ার জন্য স্টিফেনকে ধন্যবাদ ।
  • স্ট্রিং পার্সিংটি উল্লেখযোগ্যভাবে গল্ফ করা যেতে পারে, কারণ ইনপুট ফর্ম্যাটটি যা পরিচালনা করতে পারে তার চেয়ে কঠোর।
def V(C,S=0,D=-1,J=0,H=[],E=enumerate,R=range,r=str.replace,s=str.split,e="!"):
 if[]<C*0:
	J=0;N=[J]*26;K=[]
	for c in s(r(r(r(C,"[",""),"]",""),"   ","*"),2*"\n"):
	 c=[list(_)for _ in s(c,"\n")]
	 for x,_ in E(c[0]):
		if all(c[y][x]<">"for y,_ in E(c)):
		 for y,_ in E(c):c[y][x]=e
	 for j,y in E(c):
		y="".join(y)
		while"!!"in y:y=r(y,2*e,e)
		c[j]=s(y,e)
	 K+=[],[],[],[];J+=4
	 for y in c:
		while""in y:y.remove("")
		for j,x in E(y):K[j+J-4]+=x,
	for k in K:
	 if all(k)and k:N[ord(k[0][0])-97]=[[x>"*"for x in y]for y in k]
	while 0in N:N.remove(0)
	C=N
 if[]>S:S=[0]*36
 if-~D>0:
	Y=J/6;j=0
	for y in C[D]:
	 X=J%6
	 for x in y:
		if x:
		 if X>5or Y>5or S[X+Y*6]:return
		 S[X+Y*6]=x
		X+=1
	 Y+=1
 if~-len(C)==D:
	if 0in S:return
	for h in H[1:]+[J]:print"HAUL %c TO %c %d"%(65+j,65+h%6,h/6+1);j+=1
	j/0
 for j in R(36):V(C,S[:],-~D,j,H*(D>=0)+[J])

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

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


পাইথন 2 , 812 বাইট

def f(C,M=[],d=0,R=range,E=enumerate,L=len):
 if C*0=="":
	N=[0]*26;K=[];J=0
	r=str.replace
	for c in r(r(r(C,"[",""),"]",""),"   ","*").split("\n\n"):
	 c=[list(_)for _ in c.split("\n")]
	 for x in R(L(c[0])):
		if all(c[y][x]=="*"for y in R(L(c))):
		 for y in R(L(c)):c[y][x]="!"
	 for j,y in E(c):
		y="".join(y)
		while"!!"in y:y=r(y,"!!","!")
		c[j]=y.split("!")
	 for _ in"_"*L(c):K+=[],
	 for y in c:
		for j,x in E(y):K[j+J]+=x,
	 J+=L(c)
	for k in K:
	 if all(k)and k:N[ord(k[0][0])-97]=[[x!="*"for x in y]for y in k]
	while 0in N:N.remove(0)
	C=N
 if d==L(C):
	j=0;S=[j]*36
	for c,k in E(C):
	 Y=M[c]/6
	 for y in k:
		X=M[c]%6
		for x in y:
		 if X<6>Y:S[X+Y*6]|=x
		 X+=1
		Y+=1
	if 0in S:return
	for m in M:print"HAUL %c TO %c %d"%(65+j,65+m%6,1+m/6);j+=1
	j/0
 for j in R(36):f(C,M*(d>=0)+[j],d+1)

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

ক্রেট স্ট্রিংটি পার্স করা হয়েছে এবং প্রতিটি ক্রেটকে প্রতিনিধিত্ব করে এমন বুলিয়ানগুলির তালিকাভুক্ত নীচে পরিণত হয়েছে।
একটি পুনরাবৃত্তি ফাংশন পূর্ণসংখ্যা 0 <= x < 36(সমস্ত সম্ভাব্য জাহাজের ডেক অবস্থান) সমেত ক্রেটের পরিমাণের সমান দৈর্ঘ্যের সমস্ত সম্ভাব্য তালিকা তৈরি করে । প্রতিটি তালিকা সমস্ত ক্রেট এবং পরীক্ষার জন্য নির্দেশ হিসাবে ব্যাখ্যা করা হয়। যদি পরীক্ষিত নির্দেশিকাটির ফলাফলটি খালি জায়গা ছাড়াই ডেকের ফলস্বরূপ হয় তবে নির্দেশিকাটির তালিকাটি বৈধ হতে হবে এবং মুদ্রিত হয়।
অত্যন্ত অদক্ষ হওয়ার কারণে, আমি এটি সরবরাহ করা পরীক্ষার ক্ষেত্রে পরীক্ষা করিনি, যদিও কম ক্রেটযুক্ত পরিস্থিতিতে রয়েছে (টিআইও লিঙ্কটি দেখুন)। কারণ অ্যালগরিদম প্রতিটি সম্ভাব্য বিন্যাসের মাধ্যমে অনুসন্ধান করে , এটি 36**10 = 3.656e15সেগুলি দেখার চেষ্টা করে। তত্ত্ব তবু এটি এখনও কাজ করা উচিত।


যদি আপনি সরবরাহিত ইনপুট কেসগুলির সাথে এটি কাজ করতে পারেন তবে তা এই উত্তরটিকে উপযুক্ত করে তুলবে। :) অন্যথায় ভাল কাজ এবং এটি দরকারী তথ্য!
জোনাথন পিকাজো

@ জোনাথন মাইকায়েল পিকাজো কোড-গল্ফের লোকেরা এমন উত্তর লেখার মতো যা কয়েক বাইট সংক্ষিপ্ত হয় তবে মহাবিশ্বের উত্তাপের মৃত্যুর পরে শেষ হতে পারে ...
স্টিফেন

(দুঃখের বিষয়) আপনার সম্ভবত ডিফল্ট মানগুলি ফাংশন ঘোষণার H/ Mআউট করার জন্য সরিয়ে নেওয়া দরকার , যেহেতু ঘোষণাপত্রে এগুলি থাকার ফলে ফাংশনগুলি পুনরায় ব্যবহারযোগ্য নয়। অল 'পাইথন।
স্টিফেন

1
@ জোনাথানমিকায়েলপিকাজো আমি আশা করি আমার স্ট্রিং পার্সারটি ঠিক করেছেন এবং আপনার নতুন পরীক্ষার কেসের সাথে যুক্ত। বাক্স তিন নম্বর Tio উপর অত্যন্ত দীর্ঘ সময় লাগে, যদিও আপনি বাক্স অদলবদল [i]সঙ্গে [b], এটা কাজ করে । প্রথম ক্রেটগুলি বাছাই করার মাধ্যমে অ্যালগরিদমকে উন্নত করা যায় যাতে বাল্কিয়ারগুলি ছোটদের আগে পরীক্ষা করা যায়।
জোনাথন ফ্রেচ

1
@ জোনাথনফ্রেচ আমি দেখতে পেয়েছি ... ভাল, আপনি কি অতিরিক্ত মাইল যেতে এবং এটি উন্নত করতে ইচ্ছুক হবেন যাতে এটি ক্রেটগুলি বাল্কিস্ট থেকে কমপক্ষে ভারী পর্যন্ত সাজায়? আমি এটিকে বিভিন্ন পরীক্ষার কেস দিচ্ছি, এবং এর মধ্যে কয়েকটি খুব দ্রুত সমাধান হয়ে গেছে যখন অন্যরা সময়সীমা বেঁধে না ফেলে বা সমাধান না করেও চলে যায় ... আপনার কাছে সময় না থাকলে আমি বুঝতে পারি, তবে আমি কমপক্ষে এটি জিজ্ঞাসা মূল্য!
জোনাথন পিকাজো

2

জাভাস্ক্রিপ্ট, 366

k=>(x=y=0,C={},B=[...k].map((c,p)=>(c<' '?(x=0,++y):c<'a'?++x:(c=C[c=parseInt(c,36)]||(C[c]=[[],x,y]))[0].push((y-c[2])*7+(x++-c[1])/3),p<8|p>48|p%7<1)),S=[],R=i=>!C[i]||B.some((v,p)=>v?0:C[i][0].every(q=>B[q+=p]?0:B[q]=i)&&R(i+1,S[i-10]=p)||!C[i][0].map(q=>B[q+=p]==i?B[q]=0:0)),R(10),S.map((v,c)=>`HAUL ${(c+10).toString(36)} TO ${(v%7+9).toString(36)} ${v/7|0}`))

দ্রষ্টব্য: এই ফাংশনটি আরও কমপ্যাক্ট ইনপুটকে পার্স করতে পারে, কারণ এটি 24 অক্ষর দ্বারা ব্যবধানের বিষয়ে চিন্তা করে না এবং ক্রেটগুলির মধ্যে গর্ত অনুমোদিত।

আমি মনে করি এটি আরও কিছুটা গল্ফ করা যেতে পারে তবে এখন এটি সংক্ষিপ্ত এবং খুব বেশি ধীর নয়, তাই আমি এটি এটি পছন্দ করি

কম গল্ফড

k=>(
  // input parsing
  var x = 0, y = 0, // current position   
      C = []; // crates 
  [...k].forEach( c => 
  c < ' ' 
  ? (x = 0, ++y) // found a newline, increment y, reset x
  : c < 'a'
    ? ++x // not a letter, increment x
    : (  // found a letter, update the crate
        c = parseInt(c,36), // letter to number (10..35)
        c = C[c], // current crate in c
        c || (C[c]=[[], x, y]), // if new crate, initialize it setting base position
        c[0].push((y - c[2])*7 + (x-c[1])/3) // add current position
        ++x // increment x also
      )
  );
  var B = [...Array(7*8)] // empty board. in golfed code I reuse k to build B. k is big enough
  B = B.map( (_, p) => // set borders
     p < 8 | p > 48 | p%7<1
  )   
  var S = [] // output steps

  // recursive function to fill board
  var R = i => 
    ! C[i] // if crate at position i exists (else, we have found a solution and return true)
    ||
    B.some( (v,p) => // try to put crate at each position in B
      v // current cell is used already ?
      ? 0 // used, return false
      : C[i][0].every( q => // try this position, must place every part 
          B[q+=p] // current position in B is used ?
          ? 0 // used, stop, return false
          : B[q]=i // mark as used
        ) 
        && R(i+1,S[i-10]=p) // ok for current crate, try next, mark step
        || // else, fail for current crate, clear position marked
        !C[i][0].map(q => 
          B[q+=p]==i ? B[q]=0:0 // clear if it was set to 'i'
        )
    ),
  R(10) // start recursive fill at position 10 (that is 'a')
  // it returns true if ok, but we don't care as we are assured a solution exists
  // now just format output
  return S.map((v,c)=>`HAUL ${(c+10).toString(36)} TO ${(v%7+9).toString(36)} ${v/7|0}`)
)

সেগুলির অনেকগুলি পরীক্ষার মামলা রয়েছে

var F=
k=>(x=y=0,C={},B=[...k].map((c,p)=>(c<' '?(x=0,++y):c<'a'?++x:(c=C[c=parseInt(c,36)]||(C[c]=[[],x,y]))[0].push((y-c[2])*7+(x++-c[1])/3),p<8|p>48|p%7<1)),S=[],R=i=>!C[i]||B.some((v,p)=>v?0:C[i][0].every(q=>B[q+=p]?0:B[q]=i)&&R(i+1,S[i-10]=p)||!C[i][0].map(q=>B[q+=p]==i?B[q]=0:0)),R(10),
// Just for debug: return the fill in addition to the steps
[B.slice(7,50).map((c,i)=>i%7?c.toString(36):'\n'),
S.map((v,c)=>`HAUL ${(c+10).toString(36)} TO ${(v%7+9).toString(36)} ${v/7|0}`)])

var Test = [
 "[a][a][a]               [b]                     [c][c]\n      [a]               [b][b][b]                  [c]\n      [a]               [b][b]\n\n[d]                     [e]                     [f][f][f][f][f]\n[d][d]                  [e]\n[d][d]                  [e]\n                        [e]\n                        [e][e]\n\n[g]                     [h]                     [i]\n[g]                                             [i]\n                                                [i]"
,"[a][a][a]               [b]                     [c][c][c]\n   [a][a]               [b]\n   [a]                  [b][b]\n                        [b][b]\n\n[d]                     [e]                     [f]\n[d]                                             [f]\n[d]                                             [f]\n[d]\n[d]\n\n[g][g]                  [h]                     [i]\n                                                [i][i]\n                                                   [i]\n                                                   [i][i]\n\n[j][j][j]"
,"[a]                     [b][b][b]               [c]\n[a]                           [b]\n[d]                     [e]                     [f][f]\n[d]                     [e]\n[d][d][d]\n[g]                     [h]                     [i]\n[g]                     [h][h][h]               [i]\n                              [h]               [i][i]\n                              [h]                  [i]\n                                                   [i]\n[j]                     [k][k][k]\n[j]\n[j]"
,"[a][a][a][a]            [b][b][b]               [c]\n                              [b]               [c]\n                              [b]               [c][c]\n                                                   [c][c]\n[d]                     [e]                     [f]\n[d]                                             [f][f][f]\n[g]                     [h]                     [i][i]\n                        [h][h][h]               [i][i]\n                           [h][h]\n[j]\n[j]\n[j]"
,"[a]                     [b]                     [c][c]\n[a]                     [b]\n[a]\n[d][d]                  [e]                     [f][f][f]\n[d][d][d]\n[g]                     [h]                     [i]\n                        [h]\n                        [h]\n                        [h][h]\n                           [h]\n[j]                     [k][k][k]\n[j][j]                     [k][k]\n[j][j][j]                     [k]"
,"[a]                     [b][b][b]               [c]\n[a]                                             [c]\n                                                [c]\n[d][d]                  [e]                     [f]\n[d][d][d][d]            [e]                     [f]\n                        [e][e][e][e]            [f]\n[g]                     [h][h][h]               [i][i][i]\n                              [h]               [i][i][i]\n[j][j]"
,"[a]                     [b]                     [c][c][c]\n                        [b]\n[d]                     [e][e]                  [f][f]\n[d][d][d]                                       [f][f]\n[d][d]\n[g]                     [h][h][h]               [i]\n[g]                           [h]               [i][i]\n[g]                           [h]               [i][i]\n[g]\n[g]\n[j]\n[j]\n[j]"
,"[a][a]                  [b]                     [c]\n   [a][a]               [b][b]                  [c]\n                        [b][b][b]               [c]\n[d]                     [e][e][e]               [f][f][f]\n[d]                     [e][e][e]\n[g][g]                  [h]                     [i]\n                                                [i]\n                                                [i][i]\n[j][j]\n   [j]\n   [j]\n   [j]"
,"[a][a]                  [b]                     [c]\n[a][a]                  [b][b]                  [c]\n                        [b][b][b]\n[d][d]                  [e]                     [f][f][f]\n[g]                     [h]                     [i][i]\n[g]                     [h]                        [i]\n[g]                     [h]\n[g]\n[g][g]\n[j]\n[j]\n[j]\n[j][j]\n   [j]"
,"[a]                     [b]                     [c][c][c][c][c]\n                        [b]\n                        [b][b][b]\n                              [b]\n[d]                     [e]                     [f][f][f]\n                        [e]\n                        [e]\n                        [e][e][e]\n[g]                     [h]                     [i]\n[g]                     [h]\n[g]                     [h]\n                        [h]\n[j][j]                  [k]\n[j][j]                  [k]"
,"[a]                     [b]                     [c]\n                                                [c]\n                                                [c]\n[d][d][d]               [e]                     [f]\n                        [e][e][e]               [f]\n                                                [f][f][f]\n                                                   [f]\n[g][g][g]               [h][h]                  [i]\n[g][g][g]                                       [i][i]\n                                                [i][i]\n[j]                     [k]\n[j]                     [k]\n[j]"
,"[a][a]                  [b]                     [c]\n                        [b]                     [c][c][c]\n                        [b]                           [c]\n                        [b][b]                        [c]\n                           [b]\n[d]                     [e]                     [f]\n[d]\n[g]                     [h]                     [i]\n[g][g][g]               [h]                     [i]\n                        [h][h][h]               [i]\n                              [h]\n[j][j][j]               [k][k]"
,"[a][a]                  [b][b][b]               [c]\n                        [b][b][b]\n[d]                     [e]                     [f]\n[d]                     [e]                     [f]\n                        [e]                     [f]\n                        [e][e]\n                           [e]\n[g][g][g]               [h][h]                  [i]\n                        [h][h]                  [i]\n                        [h][h]                  [i][i]\n                                                   [i]\n                                                   [i]\n[j]"
,"[a][a][a]               [b][b]                  [c][c]\n                        [b][b]                  [c][c]\n                        [b][b]                  [c][c]\n[d][d]                  [e]                     [f][f]\n   [d]                  [e]\n                        [e]\n                        [e]\n                        [e]\n[g]                     [h]                     [i][i]\n[g]                                             [i][i]\n[g]\n[g]\n[g][g]"
,"[a][a][a]               [b]                     [c]\n      [a]                                       [c]\n      [a]\n[d]                     [e][e][e]               [f][f]\n[d]\n[g]                     [h][h]                  [i]\n[g][g][g]               [h][h]                  [i]\n   [g][g]                                       [i]\n[j]                     [k]\n[j]                     [k]\n[j][j]\n   [j]\n   [j]"
,"[a][a]                  [b]                     [c][c]\n                        [b][b]\n                        [b][b][b]\n[d]                     [e][e][e]               [f][f]\n                        [e][e][e]                  [f][f][f]\n[g]                     [h]                     [i][i]\n[g]                     [h]                     [i][i]\n[g]                                             [i][i]\n[j][j][j]"
,"[a][a]                  [b][b][b]               [c]\n   [a]                     [b][b]\n   [a][a][a]\n[d][d]                  [e]                     [f]\n[d][d]                  [e][e]                  [f][f][f]\n                        [e][e]\n                           [e]\n[g][g][g]               [h]                     [i]\n                                                [i]\n                                                [i]\n                                                [i]\n[j][j]"
,"[a]                     [b][b]                  [c]\n[a]                                             [c]\n[a]\n[a][a][a]\n[d]                     [e][e][e][e]            [f]\n[d]                                             [f]\n                                                [f]\n[g]                     [h]                     [i]\n[g]                     [h][h]\n[g]                     [h][h][h]\n[g]\n[g][g]\n[j]                     [k][k]\n                           [k]"
,"[a]                     [b][b]                  [c]\n[a]                     [b][b][b]               [c]\n[a][a][a][a]                                    [c]\n[d][d][d]               [e]                     [f]\n   [d][d]               [e]\n[g]                     [h]                     [i]\n                        [h]                     [i]\n                        [h]\n                        [h]\n                        [h][h]\n[j][j][j][j][j]"
,"[a][a]                  [b][b]                  [c]\n   [a][a][a]\n   [a]\n[d]                     [e][e][e]               [f][f]\n[d]\n[g]                     [h][h]                  [i]\n[g]                     [h][h]\n[g]                     [h][h]\n[g]\n[j]                     [k]\n[j][j]                  [k][k]\n                        [k][k]\n                           [k]"
,"[a][a][a]               [b]                     [c]\n                                                [c]\n                                                [c][c][c][c]\n[d]                     [e][e][e]               [f][f][f]\n[d]                     [e][e][e]               [f][f][f]\n[d]\n[g]                     [h][h]                  [i][i]\n[g]                                             [i][i]\n[j]\n[j]\n[j]"
,"[a]                     [b]                     [c][c]\n                        [b]                     [c][c]\n                        [b]\n[d][d][d]               [e]                     [f]\n      [d]                                       [f]\n                                                [f]\n[g]                     [h]                     [i]\n[g]                     [h][h][h]               [i][i]\n                        [h][h]                  [i][i][i]\n[j]                     [k]                     [l][l][l][l]"
,"[a]                     [b]                     [c]\n[a][a]                  [b]\n[a][a]\n[d]                     [e]                     [f]\n[d]                     [e]\n[d]                     [e][e][e]\n[d]                        [e]\n[g]                     [h][h][h]               [i][i]\n[g][g]\n[j][j][j]               [k]\n[j][j][j]               [k]\n                        [k]"
,"[a]                     [b]                     [c][c]\n[a][a][a]               [b]                     [c][c]\n   [a][a]               [b]\n                        [b]\n                        [b][b]\n[d]                     [e]                     [f]\n[d]                     [e]\n[d]\n[g]                     [h][h][h][h]            [i]\n[j][j]                  [k]\n                        [k]\n                        [k][k]\n                           [k]\n                           [k]"
,"[a]                     [b][b][b]               [c]\n[a]                     [b][b][b]               [c][c][c]\n[a]\n[d]                     [e]                     [f][f][f][f]\n                        [e]\n                        [e]\n                        [e]\n                        [e]\n[g]                     [h]                     [i]\n                        [h][h]                  [i]\n                        [h][h]                  [i][i][i]\n                                                   [i]\n[j]"
,"[a][a][a]               [b]                     [c]\n                        [b]                     [c]\n                        [b][b][b]\n                              [b]\n[d][d][d]               [e][e]                  [f]\n                        [e][e]                  [f]\n                                                [f]\n                                                [f][f][f]\n[g]                     [h]                     [i]\n[g]                                             [i]\n[g]                                             [i]\n                                                [i]\n                                                [i][i]\n[j][j]"
,"[a]                     [b]                     [c]\n[a]                     [b]\n[a][a]                  [b]\n[d]                     [e][e][e]               [f]\n[d]                           [e]               [f]\n                              [e]               [f]\n                              [e]               [f][f]\n                                                   [f]\n[g][g]                  [h]                     [i]\n                                                [i]\n[j][j][j]               [k]\n                        [k][k][k]\n                        [k][k]"
,"[a][a][a]               [b][b]                  [c]\n                           [b]                  [c]\n[d]                     [e][e]                  [f]\n[d]                                             [f]\n[d][d]\n   [d][d]\n[g]                     [h]                     [i]\n                        [h]\n                        [h]\n[j][j]                  [k]                     [l]\n[j][j][j]               [k]                     [l][l][l]\n      [j]               [k]"
,"[a][a]                  [b]                     [c][c][c]\n[d]                     [e][e]                  [f][f]\n[d]                     [e][e]                  [f][f]\n[d]\n[d]\n[g]                     [h][h][h]               [i]\n[g]                                             [i]\n[g]\n[g][g][g]\n[j]                     [k]\n[j]\n[j][j][j][j]"
,"[a][a][a]               [b][b]                  [c]\n[d]                     [e]                     [f]\n[d][d][d]                                       [f][f][f][f]\n[d][d]                                                   [f]\n[g][g]                  [h][h][h]               [i]\n                                                [i]\n                                                [i]\n[j]                     [k]                     [l]\n[j]                                             [l]\n                                                [l][l]\n                                                [l][l]"
,"[a][a][a]               [b]                     [c]\n                        [b]                     [c]\n                                                [c]\n[d][d]                  [e][e]                  [f]\n   [d]\n   [d]\n   [d]\n[g]                     [h]                     [i][i]\n[g][g]                  [h]                     [i][i][i]\n                        [h][h][h]                     [i]\n                              [h]\n[j][j]                  [k]\n[j][j]"
,"[a]                     [b][b][b]               [c]\n[a]                           [b]               [c]\n[a][a]                        [b]               [c]\n   [a][a]\n[d]                     [e][e][e]               [f][f]\n[d][d][d]                                       [f][f]\n   [d][d]\n[g]                     [h]                     [i][i]\n[j]                     [k]\n[j]                     [k][k]"
,"[a]                     [b]                     [c]\n                                                [c]\n                                                [c][c]\n                                                   [c][c]\n[d][d][d][d][d]         [e]                     [f][f]\n                                                [f][f]\n[g]                     [h]                     [i][i]\n[g]                     [h][h]                  [i][i]\n[g]                                             [i][i]\n[g]\n[g]\n[j][j]\n[j][j]"
,"[a]                     [b][b]                  [c][c]\n                           [b]                  [c][c]\n                           [b]\n[d][d]                  [e][e]                  [f]\n[d][d][d]               [e][e][e]\n[g]                     [h]                     [i]\n[g]                     [h]\n[g][g][g][g]            [h]\n                        [h]\n                        [h]\n[j][j][j][j]"
,"[a]                     [b][b][b]               [c][c][c]\n[a]                        [b][b]\n[a]\n[a][a]\n   [a]\n[d]                     [e]                     [f]\n[d]                                             [f]\n[d]                                             [f]\n[g]                     [h]                     [i][i]\n[g][g]                  [h]                     [i][i]\n[g][g][g]\n[j]                     [k][k]"
,"[a]                     [b][b]                  [c]\n[a]                     [b][b]\n                        [b][b]\n[d]                     [e]                     [f][f][f]\n[d][d][d]\n[d][d]\n[g]                     [h]                     [i][i]\n[g]                     [h]\n[g]\n[j][j][j]               [k]\n      [j]               [k]\n                        [k]\n                        [k][k]\n                           [k]"
,"[a][a][a]               [b]                     [c]\n   [a][a]\n[d][d][d]               [e]                     [f][f]\n                        [e]\n[g]                     [h]                     [i]\n[g][g]                  [h]                     [i]\n[g][g][g]               [h]                     [i]\n[j]                     [k][k]\n[j][j]                  [k][k][k]\n[j][j]"
,"[a][a][a]               [b]                     [c][c][c][c][c]\n   [a][a]               [b]\n      [a]               [b]\n                        [b]\n[d]                     [e]                     [f]\n[d][d]                                          [f]\n[d][d][d]                                       [f]\n[g]                     [h][h]                  [i][i][i]\n                        [h][h]                  [i][i][i]"
,"[a][a]                  [b]                     [c]\n                        [b]\n                        [b]\n[d][d][d]               [e]                     [f]\n                                                [f]\n                                                [f]\n                                                [f]\n[g][g][g]               [h][h]                  [i]\n[g][g][g]               [h][h]                  [i][i]\n                                                [i][i][i]\n[j][j][j]\n   [j][j]\n      [j]"
,"[a]                     [b]                     [c]\n[a]                                             [c]\n[a]                                             [c]\n[a]                                             [c][c][c]\n[a][a]\n[d]                     [e]                     [f]\n                        [e]\n                        [e]\n[g][g]                  [h][h]                  [i][i][i]\n[g][g]\n[g][g]\n[j]                     [k][k][k]\n[j]\n[j]\n[j]"
,"[a][a][a]               [b]                     [c]\n      [a][a]            [b][b]                  [c]\n      [a]               [b][b][b]               [c]\n                                                [c]\n[d]                     [e][e][e]               [f]\n[d][d][d]\n[d][d]\n[g]                     [h]                     [i][i]\n                                                [i][i]\n[j]                     [k][k]\n[j]"
,"[a]                     [b][b]                  [c]\n                                                [c]\n                                                [c][c]\n                                                [c][c]\n[d]                     [e][e][e]               [f][f]\n[d][d][d]                                          [f][f]\n                                                      [f]\n[g]                     [h]                     [i]\n                                                [i][i]\n                                                   [i][i]\n                                                      [i]\n[j]                     [k]                     [l][l]\n[j]\n[j]\n[j]"
,"[a]                     [b]                     [c][c][c]\n[a]                     [b]                        [c][c]\n[a]                     [b]\n[a]\n[a][a]\n[d]                     [e]                     [f][f]\n                        [e][e]\n                        [e][e]\n                           [e]\n[g]                     [h]                     [i][i]\n                                                [i][i]\n                                                [i][i]\n[j]                     [k][k][k]\n[j]"
,"[a][a][a]               [b]                     [c]\n                                                [c]\n                                                [c]\n                                                [c][c]\n                                                   [c]\n[d][d][d]               [e]                     [f]\n      [d]                                       [f]\n                                                [f]\n[g][g]                  [h]                     [i]\n                        [h]                     [i][i][i]\n                                                [i][i]\n[j][j]                  [k]\n[j][j]                  [k]\n[j][j]"
,"[a][a]                  [b][b]                  [c][c]\n                           [b][b]\n                              [b]\n[d]                     [e][e][e]               [f]\n[d]                     [e][e][e]               [f]\n[d][d]\n   [d][d]\n[g][g][g]               [h]                     [i]\n                        [h]                     [i][i]\n                        [h]\n[j]                     [k]\n                        [k]\n                        [k]"
,"[a][a][a]               [b][b]                  [c]\n      [a]                                       [c][c][c]\n                                                [c][c]\n[d]                     [e]                     [f]\n                                                [f]\n                                                [f]\n                                                [f]\n[g]                     [h][h]                  [i][i][i]\n[g]                     [h][h]\n[g]                     [h][h]\n[g][g][g]\n[j][j][j]"
,"[a][a]                  [b][b]                  [c][c][c][c][c]\n[a][a][a]                  [b]\n[d]                     [e][e][e]               [f]\n[d]                     [e][e][e]               [f]\n[d][d][d][d]                                    [f]\n                                                [f]\n                                                [f]\n[g]                     [h]\n                        [h]\n                        [h]\n                        [h]\n                        [h]"
,"[a]                     [b][b]                  [c]\n[a]                                             [c]\n[a]                                             [c]\n[a]                                             [c]\n[a]\n[d]                     [e]                     [f]\n[g]                     [h][h][h][h]            [i][i][i]\n[g]                                             [i][i][i]\n[g][g][g][g]\n[j][j]\n[j][j][j][j]"
,"[a]                     [b]                     [c]\n                        [b][b]\n                        [b][b][b]\n[d][d][d]               [e]                     [f][f]\n   [d][d]               [e]                     [f][f]\n      [d]               [e]\n                        [e]\n[g][g]                  [h]                     [i][i][i]\n                        [h]                     [i][i][i]\n                        [h]\n[j][j][j]"
,"[a][a]                  [b][b]                  [c]\n                                                [c]\n                                                [c]\n                                                [c]\n                                                [c][c]\n[d]                     [e]                     [f][f][f]\n                        [e]\n                        [e]\n                        [e][e][e]\n[g][g]                  [h]                     [i]\n                        [h][h][h]               [i]\n                        [h][h]                  [i]\n[j]                     [k]\n                        [k]\n                        [k]\n                        [k]"
,"[a]                     [b]                     [c][c][c][c][c]\n[a]\n[a][a][a][a]\n[d][d]                  [e]                     [f]\n[d][d]\n[g]                     [h][h]                  [i]\n[g]                     [h][h][h]               [i]\n[j]                     [k]\n[j]                     [k]\n[j]                     [k]\n                        [k][k]\n                           [k]"
,"[a]                     [b]                     [c]\n[a][a]                  [b]\n                        [b]\n                        [b][b]\n                           [b]\n[d]                     [e]                     [f][f][f]\n[d]                     [e]                     [f][f][f]\n                        [e]\n[g]                     [h]                     [i]\n                        [h]                     [i]\n                        [h]                     [i][i][i]\n                                                      [i]\n[j][j][j][j][j]"
,"[a]                     [b]                     [c][c]\n                        [b]                     [c][c]\n                        [b]\n                        [b]\n[d][d]                  [e][e][e]               [f][f]\n[d][d]\n[g]                     [h][h]                  [i][i]\n                        [h][h]                  [i][i]\n                        [h][h]\n[j]                     [k]\n                        [k]\n                        [k][k][k]\n                              [k]"
,"[a][a]                  [b][b]                  [c]\n   [a][a]                  [b]                  [c]\n      [a]                  [b]                  [c]\n                           [b]                  [c]\n[d]                     [e]                     [f]\n                                                [f][f]\n                                                [f][f][f]\n[g][g]                  [h][h][h]               [i]\n[j][j]                  [k][k]\n                        [k][k][k][k]"
,"[a]                     [b]                     [c]\n                                                [c]\n                                                [c]\n                                                [c][c]\n                                                   [c]\n[d]                     [e][e]                  [f][f]\n                        [e][e][e]\n                              [e]\n[g]                     [h]                     [i][i][i]\n                        [h]\n                        [h]\n                        [h]\n                        [h]\n[j][j]                  [k]                     [l]\n                        [k]                     [l]\n                                                [l][l]\n                                                   [l][l]"
,"[a][a]                  [b]                     [c]\n   [a]                                          [c][c]\n   [a]                                             [c]\n   [a]                                             [c]\n   [a]                                             [c]\n[d]                     [e]                     [f]\n[d]                                             [f]\n[d][d]                                          [f]\n   [d]                                          [f]\n   [d]\n[g][g][g]               [h][h]                  [i]\n                                                [i]\n                                                [i]\n                                                [i]\n                                                [i][i]\n[j]"
,"[a]                     [b]                     [c][c]\n                        [b]\n                        [b]\n[d]                     [e][e]                  [f]\n[d][d][d]                  [e]                  [f][f]\n[d][d]                                          [f][f][f]\n[g][g][g]               [h][h][h]               [i][i]\n                              [h][h]            [i][i]\n[j]                     [k]\n[j]"
,"[a][a][a]               [b][b]                  [c]\n                           [b]                  [c][c][c]\n                                                [c][c]\n[d]                     [e][e]                  [f][f]\n[d]                                             [f][f]\n[g]                     [h]                     [i][i][i][i]\n[g][g]                  [h]                           [i][i]\n[g][g][g]               [h]\n[j]"
,"[a][a][a]               [b]                     [c]\n                                                [c]\n                                                [c][c]\n                                                [c][c]\n[d]                     [e]                     [f]\n[d][d][d]               [e]                     [f]\n                                                [f][f]\n                                                   [f][f]\n[g]                     [h]                     [i][i]\n[g]                     [h]\n[g]                     [h]\n[j][j][j]\n[j][j]\n   [j]"
,"[a]                     [b]                     [c]\n                        [b]                     [c][c][c][c]\n                        [b]                           [c]\n[d][d]                  [e][e][e]               [f]\n[d][d][d][d]\n[g]                     [h]                     [i][i][i]\n[g]                     [h]\n[g]\n[j][j]                  [k]\n                        [k]\n                        [k][k][k]\n                              [k]"
,"[a]                     [b]                     [c]\n[a]                                             [c]\n[a]                                             [c]\n[a][a]\n   [a]\n[d]                     [e][e]                  [f][f]\n[g][g]                  [h][h][h]               [i]\n[g][g]                                          [i]\n   [g]\n[j]                     [k]                     [l]\n[j]                     [k]                     [l]\n[j][j]                  [k]\n   [j][j]"
,"[a]                     [b]                     [c][c]\n                        [b]                        [c][c]\n                        [b]                        [c][c]\n                        [b]\n                        [b][b]\n[d][d][d][d]            [e]                     [f]\n                        [e][e]\n                        [e][e]\n                           [e]\n[g]                     [h]                     [i]\n                        [h]\n                        [h]\n                        [h]\n[j]                     [k]                     [l][l]\n                                                [l][l]"
,"[a]                     [b][b][b]               [c]\n[a][a]                        [b]               [c]\n[a][a]                        [b]               [c]\n                                                [c][c][c]\n[d][d]                  [e]                     [f]\n                        [e]                     [f][f][f]\n                                                [f][f]\n[g]                     [h][h][h]               [i]\n[g]\n[g]\n[j][j][j]"
,"[a][a]                  [b][b][b]               [c]\n                              [b]               [c]\n[d]                     [e]                     [f][f][f][f]\n[d][d][d][d][d]\n[g]                     [h]                     [i]\n[g]                     [h][h][h]               [i]\n[g][g][g]                     [h][h]            [i]\n      [g]\n[j]                     [k]"
,"[a]                     [b][b][b][b]            [c]\n[a][a][a]                                       [c]\n   [a][a]                                       [c]\n[d]                     [e]                     [f]\n[d]                                             [f]\n[g][g][g]               [h]                     [i][i]\n      [g]                                       [i][i]\n[j]                     [k]\n[j]                     [k]\n[j][j]                  [k]\n   [j]\n   [j]"
,"[a][a][a]               [b]                     [c][c][c]\n   [a][a]               [b]                     [c][c][c]\n      [a]               [b]\n[d]                     [e][e][e][e]            [f]\n[d]\n[d]\n[d][d]\n   [d]\n[g]                     [h]                     [i]\n[g]\n[j]\n[j][j]\n[j][j][j]"
,"[a][a][a]               [b]                     [c]\n                        [b]\n                        [b]\n[d]                     [e]                     [f]\n[d]                     [e]                     [f][f]\n[d]\n[d][d][d]\n[g]                     [h]                     [i][i][i][i]\n[j]                     [k][k]\n[j][j]                     [k][k]\n[j][j][j]                     [k]\n                              [k]"
,"[a][a]                  [b][b][b]               [c]\n[a][a]                                          [c][c]\n                                                [c][c][c]\n[d]                     [e][e]                  [f]\n                                                [f]\n                                                [f]\n                                                [f]\n[g]                     [h]                     [i][i]\n[g][g]                  [h]                        [i]\n                        [h]\n[j][j]                  [k]\n   [j][j]\n      [j]\n      [j]"
,"[a]                     [b]                     [c][c][c][c][c]\n[a]                     [b]\n[a]\n[d][d][d]               [e]                     [f]\n[d][d][d]               [e]                     [f]\n                        [e][e]                  [f]\n                        [e][e]                  [f]\n                                                [f][f]\n[g]                     [h]                     [i][i]\n                                                [i][i]\n                                                [i][i]"
,"[a]                     [b]                     [c]\n[a]                     [b]\n[a]                     [b][b]\n[a]                        [b][b]\n[d][d][d][d]            [e]                     [f][f]\n                                                [f][f]\n[g][g]                  [h]                     [i][i]\n[g][g]                  [h][h][h]               [i][i]\n   [g][g]                                          [i]\n[j]"
,"[a]                     [b][b][b]               [c]\n[a][a][a]                     [b]\n[a][a]                        [b]\n[d][d][d]               [e]                     [f]\n                        [e][e][e]\n                        [e][e]\n[g][g]                  [h]                     [i]\n                        [h]                     [i]\n                        [h]\n[j]                     [k][k]\n[j]                     [k][k]\n[j]"
,"[a][a]                  [b][b][b][b]            [c]\n   [a][a]                                       [c]\n   [a][a]\n[d]                     [e]                     [f]\n[d]\n[d][d]\n   [d]\n   [d]\n[g][g]                  [h]                     [i]\n[g][g]                                          [i]\n[j]                     [k]\n[j]                     [k][k]\n[j]                        [k]\n                           [k]\n                           [k]"
,"[a][a]                  [b]                     [c]\n                        [b]                     [c]\n                        [b]\n[d][d][d]               [e]                     [f]\n[d][d][d]               [e]                     [f][f]\n                        [e]                     [f][f][f]\n[g]                     [h]                     [i]\n                        [h]                     [i]\n                                                [i][i]\n                                                   [i]\n                                                   [i]\n[j]                     [k]                     [l][l][l]"
,"[a]                     [b]                     [c]\n                                                [c]\n                                                [c]\n[d]                     [e][e][e]               [f]\n                                                [f]\n                                                [f]\n                                                [f][f][f]\n[g]                     [h][h][h][h]            [i]\n[g]                                             [i][i]\n                                                [i][i][i]\n[j][j]                  [k][k]\n[j][j]                     [k][k]\n                              [k]"
,"[a][a][a]               [b]                     [c]\n                        [b][b][b][b]            [c]\n                                 [b]            [c]\n[d]                     [e][e][e]               [f][f]\n[d]                     [e][e][e]\n[d][d][d][d]\n[g][g]                  [h]                     [i]\n[g][g]                  [h]\n[j][j][j]"
,"[a]                     [b][b][b]               [c]\n[a]                           [b]               [c]\n[a]                                             [c][c][c]\n                                                      [c]\n[d][d]                  [e][e][e][e]            [f]\n[d][d]\n[g]                     [h]                     [i]\n                        [h][h][h]               [i]\n                              [h][h]\n[j]                     [k][k]\n                        [k][k]"
,"[a][a][a]               [b]                     [c][c][c]\n                                                      [c]\n[d]                     [e]                     [f]\n[d]                                             [f][f][f]\n[d]                                             [f][f]\n[g]                     [h][h]                  [i]\n                        [h][h]                  [i]\n                                                [i]\n[j]                     [k]                     [l][l]\n[j]                     [k][k][k]\n                        [k][k]"
,"[a]                     [b]                     [c]\n[a]                     [b][b]\n[a]                     [b][b][b]\n[a]\n[d]                     [e]                     [f][f][f]\n[d][d]                  [e]                        [f][f]\n[d][d]                  [e]\n   [d]                  [e]\n[g][g]                  [h]                     [i]\n[j]                     [k][k][k]\n[j][j]"
,"[a][a][a][a][a]         [b]                     [c][c]\n                                                [c][c]\n[d][d][d]               [e]                     [f][f]\n[d][d][d]                                          [f]\n                                                   [f]\n[g]                     [h][h]                  [i]\n[g]                     [h][h][h]               [i]\n[g][g][g][g]                                    [i]\n                                                [i]"
,"[a][a]                  [b]                     [c][c][c]\n                        [b]\n                        [b]\n                        [b][b]\n                           [b]\n[d]                     [e][e]                  [f]\n[d]\n[d]\n[d]\n[g][g]                  [h]                     [i]\n   [g]                                          [i]\n   [g]                                          [i][i]\n                                                   [i]\n                                                   [i]\n[j]                     [k]\n                        [k][k]\n                           [k]\n                           [k][k]"
,"[a][a]                  [b]                     [c][c]\n[a][a][a]               [b][b]\n      [a]\n[d]                     [e]                     [f]\n[d]                     [e]                     [f]\n[d][d][d]               [e]\n   [d]\n[g]                     [h][h][h]               [i][i][i]\n                                                [i][i][i]\n[j][j]\n   [j]\n   [j]"
,"[a][a][a][a]            [b]                     [c]\n                                                [c][c]\n                                                [c][c][c]\n[d][d][d]               [e][e][e]               [f]\n                           [e][e]               [f]\n                                                [f]\n[g]                     [h]                     [i]\n[g]                     [h]                     [i]\n                        [h]                     [i]\n                        [h]                     [i][i][i]\n                        [h]\n[j]"
,"[a]                     [b]                     [c][c][c]\n[a]                     [b]\n[a][a]                  [b][b]\n                        [b][b]\n[d][d]                  [e]                     [f]\n   [d][d]               [e][e]\n      [d]                  [e]\n      [d]                  [e]\n                           [e]\n[g][g]                  [h]                     [i]\n                        [h]\n                        [h]\n                        [h]\n                        [h]\n[j][j]"
,"[a]                     [b][b][b][b]            [c]\n[a]\n[a][a][a][a]\n[d]                     [e]                     [f]\n[d]                     [e]                     [f]\n                        [e]                     [f]\n[g][g][g]               [h][h][h]               [i][i]\n[g][g][g]               [h][h][h]               [i][i]\n[j]"
,"[a]                     [b][b][b][b]            [c]\n[a][a]                        [b][b]\n[a][a][a]\n[d]                     [e][e]                  [f][f]\n[d]                     [e][e]                     [f]\n[d]\n[d]\n[g][g][g]               [h]                     [i]\n                        [h][h][h]\n                        [h][h]\n[j][j]"
,"[a][a]                  [b]                     [c][c][c][c][c]\n[a][a][a]\n[d][d][d]               [e]                     [f][f]\n      [d]\n      [d]\n[g]                     [h]                     [i]\n[g][g][g]               [h]                     [i]\n   [g][g]                                       [i]\n[j]\n[j]\n[j][j]\n[j][j]"
,"[a][a][a]               [b]                     [c]\n                        [b][b][b]               [c]\n                        [b][b]                  [c]\n                                                [c]\n                                                [c]\n[d][d]                  [e]                     [f][f]\n                                                [f][f]\n[g][g][g]               [h]                     [i]\n      [g]                                       [i][i]\n      [g][g]                                    [i][i][i]\n[j]\n[j]"
,"[a]                     [b][b]                  [c]\n[d]                     [e]                     [f]\n[d]\n[g][g]                  [h][h]                  [i]\n[g][g][g]                                       [i]\n      [g]                                       [i][i]\n                                                   [i][i]\n[j][j][j]               [k]                     [l]\n                        [k]                     [l]\n                        [k]                     [l]\n                                                [l][l]\n                                                   [l]\n[m]\n[m]"
,"[a]                     [b]                     [c]\n                        [b]                     [c]\n                        [b][b]\n                           [b][b]\n[d][d][d][d][d]         [e]                     [f][f][f]\n                                                [f][f][f]\n[g]                     [h]                     [i][i]\n[g]                     [h][h]                     [i][i]\n[g]                                                [i][i]\n[j]\n[j]\n[j]"
,"[a]                     [b][b][b]               [c]\n[a][a]                        [b]               [c]\n[a][a][a]                     [b][b]            [c]\n[d][d]                  [e]                     [f]\n                                                [f][f][f]\n                                                [f][f]\n[g][g][g]               [h]                     [i]\n                        [h]                     [i]\n[j][j]                  [k]\n[j][j]"
,"[a][a][a]               [b][b][b]               [c]\n      [a]               [b][b][b]               [c]\n      [a]\n[d]                     [e]                     [f]\n[d]                     [e][e][e]               [f]\n[d]                        [e][e]\n[g]                     [h]                     [i][i][i]\n[g]\n[g][g]\n   [g]\n   [g]\n[j][j]"
,"[a]                     [b]                     [c][c][c][c]\n[a][a]                  [b]\n   [a]                  [b]\n   [a][a]\n[d]                     [e]                     [f]\n                        [e]\n                        [e][e]\n                           [e]\n                           [e]\n[g][g]                  [h]                     [i]\n                        [h]                     [i]\n[j]                     [k]                     [l][l]\n                        [k]                        [l][l]\n                                                   [l][l]"
,"[a]                     [b]                     [c]\n[d]                     [e]                     [f]\n[d][d]                  [e]                     [f]\n   [d][d]               [e][e]                  [f]\n      [d]                  [e][e]\n[g]                     [h]                     [i][i][i][i]\n[g]                     [h]\n[j][j][j]               [k]\n   [j][j]               [k][k][k]\n      [j]"
,"[a]                     [b]                     [c]\n[a]\n[a]\n[a]\n[d]                     [e][e][e][e]            [f][f]\n                                                [f][f]\n[g][g][g]               [h]                     [i][i][i]\n                        [h]                     [i][i][i]\n                        [h][h][h][h]\n[j]\n[j]\n[j]\n[j][j][j]"
,"[a][a]                  [b]                     [c]\n[a][a]\n[d][d][d][d][d]         [e]                     [f]\n                        [e][e][e]               [f]\n                              [e][e]            [f]\n                                                [f]\n                                                [f]\n[g]                     [h]                     [i]\n[g]                     [h][h]\n[g][g]\n   [g][g]\n[j][j][j]\n      [j]"
,"[a]                     [b][b][b]               [c]\n[a]                           [b]               [c]\n[a][a][a]                     [b]               [c]\n                              [b]\n[d]                     [e][e]                  [f][f]\n                                                [f][f]\n[g]                     [h]                     [i]\n[g]                     [h][h][h]               [i]\n                        [h][h]                  [i]\n[j]                     [k][k][k]"
,"[a]                     [b]                     [c]\n                        [b]                     [c]\n                        [b][b]\n                        [b][b]\n[d]                     [e]                     [f]\n[d]                     [e]\n[d]                     [e]\n[d]\n[d][d]\n[g]                     [h]                     [i][i]\n[g][g]                  [h][h]                     [i]\n                           [h][h]\n                              [h]\n[j]                     [k][k][k][k]"
,"[a][a]                  [b]                     [c][c][c][c][c]\n                        [b]\n                        [b]\n[d]                     [e]                     [f][f][f]\n                        [e]                     [f][f][f]\n[g]                     [h][h]                  [i]\n                           [h]                  [i]\n                           [h]                  [i][i]\n                                                   [i][i]\n[j]\n[j]\n[j]\n[j]\n[j][j]"
,"[a][a][a]               [b][b]                  [c][c]\n                        [b][b]\n[d]                     [e]                     [f][f]\n[d]                     [e]                     [f][f]\n[d]\n[g]                     [h]                     [i]\n                        [h]                     [i][i]\n                        [h]                     [i][i][i]\n                        [h]\n                        [h]\n[j][j][j]\n   [j][j]\n      [j]"
,"[a][a]                  [b][b]                  [c]\n[a][a]                                          [c][c]\n[a][a]                                             [c]\n                                                   [c]\n                                                   [c]\n[d]                     [e][e][e]               [f]\n                                                [f]\n                                                [f]\n[g]                     [h][h][h]               [i]\n[g]                        [h][h]               [i]\n[j]\n[j]\n[j][j]\n   [j]\n   [j]"
,"[a][a]                  [b]                     [c]\n[a][a]                  [b]                     [c]\n                        [b][b][b]               [c]\n                              [b]               [c][c][c]\n[d]                     [e]                     [f][f]\n[d]\n[g][g][g]               [h][h][h]               [i]\n                                                [i]\n                                                [i]\n[j]\n[j]\n[j]\n[j]\n[j][j]"
]

to=0
function update() {
  var nt=+I.value
  var test = Test[nt-1]
  if (test) {
    O.textContent = test
    clearTimeout(to)
    to = setTimeout(_=>{
      I.disabled = true
      var t = + new Date()
      var [d,r]=F(test)
      O.textContent = 'Time '+(new Date-t)/1000+' sec'+d+r.join`\n`+'\n'+test
      I.disabled = false
    }, 800)
  }
}

update()
Test # <input id=I value=1 type=number oninput='update()' max=101 min=1> (1 to 101, be patient: some testcase is slow to solve)
<pre id=O></pre>


টেস্ট কেসেস পাঠ্যের সাথে যুক্ত অন্যান্য পরীক্ষার মামলা রয়েছে।
জোনাথন পিকাযো

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