আপনি অলিম্পিকের হোস্ট!


17

আপনি অলিম্পিক গেমস হোস্ট করেন এবং অনুষ্ঠানের স্বার্থে একটি দুর্দান্ত পুল তৈরি করতে হবে তবে তত্ত্বাবধায়করা প্রায়শই মাত্রাগুলি সম্পর্কে তাদের মন পরিবর্তন করেন এবং অনুরোধযুক্ত আকারের সাথে এটি পুনর্নির্মাণের দ্রুত উপায় প্রয়োজন!


দুটি পূর্ণসংখ্যা দেওয়া হয়েছে Lএবং x, আপনার কাজটি দৈর্ঘ্য Lএবং xলেনের একটি সুইমিং পুল তৈরি করা ।

কীভাবে একটি পুল তৈরি হয়?

  • এটিতে একটি অভ্যন্তর বর্গক্ষেত্র রয়েছে, যার অনুভূমিক দেয়ালগুলি Lএকটানা ড্যাশগুলি ( -) দিয়ে তৈরি , এবং যার উল্লম্ব দেয়ালগুলি 3x - 1বারগুলি ( |) দিয়ে তৈরি made অতিরিক্তভাবে, +প্রতিটি কোণে 4 টি চিহ্ন রয়েছে। এর একটি উদাহরণ দেওয়া যাক ( L = 10, x = 2):

    + + ---------- + +
    | |
    | |
    | |
    | |
    | |
    + + ---------- + +
    
  • প্রতিটি লেনের 2 টি উল্লম্ব ইউনিট প্রস্থ রয়েছে। অভ্যন্তরীণ স্কোয়ারটি x-1লেন বিভাজক দ্বারা ভরে গেছে , Lঅনুভূমিকভাবে পরপর :চিহ্নগুলি নিয়ে। লেন বিভাজক স্থাপনের পরে, আমাদের পুলটি দেখতে এই জাতীয় চেহারা হওয়া উচিত:

    + + ---------- + +
    | |
    | |
    | :::::::::: |
    | |
    | |
    + + ---------- + +
    
  • একটি পুলের মধ্যে একটি প্যাডিং রয়েছে (একটি বাহ্যিক স্কোয়ার), যার অনুভূমিক দেয়ালগুলি (এল + 4) -এর এবং উল্লম্ব দেয়ালগুলি (3x + 1) |এর, যা অভ্যন্তরীণ বর্গক্ষেত্রকে ঘিরে রয়েছে:

    + + -------------- + +
    | + ---------- + |
    | | | |
    | | | |
    | | :::::::::: | |
    | | | |
    | | | |
    | + ---------- + |
    + + -------------- + +
    

এবং এটি আমাদের অলিম্পিক আকারের ** সুইমিং পুল!


চশমা:

  • নকশা এবং কার্যকারিতা উদ্দেশ্যে, আপনি নিশ্চিত করছেন যে 100 ≥ L ≥ 10এবং 15 ≥ x ≥ 2

  • আউটপুট অবশ্যই প্রদর্শিত হবে। একটি "উল্লম্বভাবে নির্মিত" * পুল আউটপুটিং অনুমোদিত নয়।

  • ট্রেলিং এবং শীর্ষস্থানীয় স্থানগুলি অনুমোদিত।

  • আপনি কোনও স্ট্যান্ডার্ড পদ্ধতিতে ইনপুট নিতে এবং আউটপুট সরবরাহ করতে পারেন ।

  • ডিফল্ট লুফোলস প্রয়োগ হয়।


উদাহরণ / পরীক্ষার কেস:

এল = 20, এক্স = 3

+ + ------------------------ + +
| + -------------------- + |
| | | |
| | | |
| | :::::::::::::::::::: | |
| | | |
| | | |
| | :::::::::::::::::::: | |
| | | |
| | | |
| + -------------------- + |
+ + ------------------------ + +



এল = 50, এক্স = 5:

+ + ------------------------------------------------- ----- + +
| + + ------------------------------------------------- - + |
| | | |
| | | |
| | ::::::::::::::::::::::::::::::::::::::::::::::::: : | |
| | | |
| | | |
| | ::::::::::::::::::::::::::::::::::::::::::::::::: : | |
| | | |
| | | |
| | ::::::::::::::::::::::::::::::::::::::::::::::::: : | |
| | | |
| | | |
| | ::::::::::::::::::::::::::::::::::::::::::::::::: : | |
| | | |
| | | |
| + + ------------------------------------------------- - + |
+ + ------------------------------------------------- ----- + +


এল = 10, এক্স = 15

+ + -------------- + +
| + ---------- + |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| | :::::::::: | |
| | | |
| | | |
| + ---------- + |
+ + -------------- + +

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী!

* এটি উল্লম্বভাবে নির্মিত হলে জল প্রবাহিত হতে পারে: পি

** হ্যাঁ, আমি জানি যে লেনগুলি যত বেশি হবে এবং পুলটি যত ছোট হবে, অঙ্কনটি পুলের মতো কম দেখায়!


স্যান্ডবক্স , যারা মুছে ফেলা পোস্টগুলি দেখতে পারেন।
মিঃ এক্সকোডার

কি হবে যদি x>=L??
ক্রেগআর 8806

@ ক্রেগআর 8806 একই অ্যালগরিদম। পুলের দৈর্ঘ্যের চেয়ে আরও বেশি গলি দিয়ে। আমার মনে হচ্ছে আপনি প্রশ্নটি ভুলভাবে পড়েছেন ...
মিঃ এক্সকোডার

কোথায় L=10এবং কেসের ক্ষেত্রে কী হবে x=15? পুলে স্থাপনের চেয়ে আরও বেশি গলি থাকবে না? আমি উদ্দেশ্যটি ভুল বুঝতে পারি
ক্রেগআর 8806

@ ক্রেগআর 8806 লেনটির সাথে দৈর্ঘ্যের কোনও সম্পর্ক নেই! আপনি এটি বিদ্যমান উত্তরগুলির মধ্যে একটি দিয়ে নিজেই এটি পরীক্ষা করতে পারেন
মিস্টার এক্সকোডার

উত্তর:


13

কাঠকয়লা , 32 বাইট

NθNη↓Eθ×η:  B⁺θ²⁺׳η¹↖←B⁺θ⁶⁺׳η³

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

-4 ধন্যবাদ নীলকে

এবং AST:

Program
├N: Input Number
│└θ: Identifier θ
├N: Input Number
│└η: Identifier η
├Print
│├↓: Down
│└E: Map
│ ├θ: Identifier θ
│ └×: Product
│  ├η: Identifier η
│  └':  ': String ':  '
├B: Box
│├⁺: Sum
││├θ: Identifier θ
││└2: Number 2
│└⁺: Sum
│ ├×: Product
│ │├3: Number 3
│ │└η: Identifier η
│ └1: Number 1
├Move
│└↖: Up Left
├Move
│└←: Left
└B: Box
 ├⁺: Sum
 │├θ: Identifier θ
 │└6: Number 6
 └⁺: Sum
  ├×: Product
  │├3: Number 3
  │└η: Identifier η
  └3: Number 3

বাহ চারকোল এই চ্যালেঞ্জটি পেয়েছে :)
ডাউনগোট

আপনি নিজের নামের প্রতি সত্য রইলেন - আপনি আমাকে ছাড়িয়ে গেছেন।
notjagan

2
যথারীতি, ব্যাখ্যা অনুরোধ।
ক্যালকুলেটরফলাইন

@ ক্যালকুলেটরফলাইন হ্যাঁ, আমি যখন আউটগল্ফের জন্য কিছু চাইছি তখন এই সমস্ত ব্যাখ্যা করার মতো সময় আমার হাতে নেই ... এছাড়াও আপনি -aকমান্ড-লাইন যুক্তি ব্যবহার করে এটিএসটি পরীক্ষা করতে পারেন ।
এরিক আউটগলফার

-aত্রুটি কেন বাড়ায়> _ <
এরিক দি আউটগল্ফার

12

কাঠকয়লা , 40 39 37 বাইট

NθNηB⁺θ⁶⁺׳η³↘→B⁺θ²⁺׳η¹→F⁻η¹«M³↓P×:θ

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

আমি জানি নীলের ইতিমধ্যে একই দৈর্ঘ্যের চারকোলের উত্তর রয়েছে, তবে আমি কিছুটা ভিন্ন পদ্ধতির গ্রহণ করেছি যাতে আমি বুঝতে পেরেছিলাম যে আমারও পোস্ট হতে পারে।

ব্যাখ্যা

NθNηB⁺θ⁶⁺׳η³↘→B⁺θ²⁺׳η¹→F⁻η¹«M³↓P×:θ
NθNη                                         take the two inputs as numbers in θ and η
      B⁺θ⁶⁺×³η³                               draw a rectangle θ + 6 by 3η + 3
                                               (characters default to |, - and +)
                ↘→                             move the cursor down one and right two
                   B⁺θ²⁺×³η¹                  draw a rectangle θ + 2 by 3η + 1
                             F⁻η¹«            for ι (unused) from 0 up until η - 1:
                                   M³↓            move the cursor down by 3
                                       P×:θ       print θ :s without moving the cursor
                                               [implicit end of for]

1
দয়া করে ব্যাখ্যা
ক্যালকুলেটরফলাইন

পছন্দ করেছেন
notjagan

1
হু, তৃতীয় প্যারামিটারটি কি alচ্ছিক ? ভাল, যে আমার দুটি বাইট সঞ্চয়!
নীল

11

কাঠকয়লা, 40 38 36 31 বাইট

A⁺²NθA⁺¹×³NηUOθη:¶¶Bθη↖←B⁺⁴θ⁺²η

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

A⁺²Nθ       Assign(Plus(2, InputNumber()), q);

চারকোলের অঙ্কন আদিমগুলি সামগ্রিক অক্ষর গণনা +গুলি সহ এস ব্যবহার করে , তবে ইনপুটটি কেবলমাত্র সংখ্যার -, সুতরাং অভ্যন্তরের প্রাচীরের প্রস্থটি পেতে আমাদের 2 টি যুক্ত করতে হবে।

A⁺¹×³Nη     Assign(Plus(1, Times(3, InputNumber())), h);

নীচের সারিতে অন্তর্ভুক্ত আবার অভ্যন্তরের প্রাচীরের উচ্চতা গণনা করুন, সুতরাং প্রতি লেন প্লাস ওয়ান প্রতি তিনটি।

UOθη:¶¶     Oblong(q, h, ":\n\n");

লেন আঁকুন। এটি কেবল :দুটি ফাঁকা রেখার দ্বারা উল্লম্বভাবে পৃথক করে পূর্ণ একটি আয়তক্ষেত্র (পাইলক্রোগুলি নতুন লাইনের অক্ষর উপস্থাপন করে)।

Bθη         Box(q, h);

Rectangleকমান্ড ঠিক কি আমরা ভেতরের প্রাচীর আঁকা প্রয়োজন। সম্পাদনা: Boxআপনাকে আমার তৃতীয় প্যারামিটার বাদ দিতে দেয়, আমাকে 2 বাইট সংরক্ষণ করে।

↖           Move(:UpLeft);
←           Move(:Left);
B⁺⁴θ⁺²η     Box(Plus(4, q), Plus(2, h));

এবং আবার সামান্য প্রশস্ত ও লম্বা এবং অভ্যন্তরের প্রাচীরকে কেন্দ্র করে বাইরের প্রাচীর আঁকতে।


1
টিআইও-তে চারকোল কোডের লিঙ্কগুলি কখনই আসল কোডের সাথে হয় না?
জোনাথন অ্যালান

1
@ জোনাথান অ্যালান আমি ভার্বোজ কোডের সাথে লিঙ্ক করেছি কারণ এটি আরও পাঠযোগ্য, এবং আমি যাচাইকরণের জন্য স্বয়ংক্রিয়ভাবে সংযোগ কোড তৈরি করার যুক্তি যুক্ত করছি।
নিল

... তবে কীভাবে 219 টি অক্ষর 40 এর চেয়ে বেশি পঠনযোগ্য? : পি
জোনাথন অ্যালান

আমি আরও শক্ত করে এই টিপটি লক্ষ্য করতে পারি :)
জোনাথন অ্যালান

1
যথারীতি, দয়া করে ব্যাখ্যা করুন।
ক্যালকুলেটরফলাইন

8

টি-এসকিউএল, 284 281 বাইট

DECLARE @ INT,@x INT,@S VARCHAR(MAX)='+--d--+b| +d+ |b'SELECT @=L,@x=x FROM t
P:SET @S+='| |s| |b| |s| |b| |c| |b'SET @x-=1IF @x>0GOTO P
PRINT REPLACE(REPLACE(REPLACE(REPLACE(LEFT(@S,LEN(@S)-6)+'+d+ |b+--d--+','d',REPLICATE('-',@)),'b',CHAR(13)),'s',SPACE(@)),'c',REPLICATE(':',@))

ইনপুট INT কলাম থেকে নেওয়া হয় এল এবং এক্স preexisting টেবিলে টি , আমাদের অনুমতি দেওয়া ইনপুট পদ্ধতি প্রতি

মূলত আমি পুনরাবৃত্ত অক্ষরগুলি (ডি = ড্যাশগুলি, এস = স্পেসস, সি = কোলোন, বি = লাইন ব্রেক) উপস্থাপনকারী অক্ষরগুলির সাথে একটি দীর্ঘ স্ট্রিং তৈরি করছি, তারপরে যথাযথ ফিলারগুলির সাথে এগুলি সব শেষে প্রতিস্থাপন করুন।

বিন্যাসকৃত:

DECLARE @ INT,@x INT,@S VARCHAR(MAX)='+--d--+b| +d+ |b'
SELECT @=L,@x=x FROM t
P:
    SET @S+='| |s| |b| |s| |b| |c| |b'
    SET @x-=1
IF @x>0 GOTO P
PRINT REPLACE(REPLACE(REPLACE(REPLACE( LEFT(@S,LEN(@S)-6)+'+d+ |b+--d--+'
     ,'d',REPLICATE('-',@))
     ,'b',CHAR(13))
     ,'s',SPACE(@))
     ,'c',REPLICATE(':',@))

লুপের অভ্যন্তরে আমি 2 সারি ফাঁকা এবং 1 সারি কলোন যুক্ত করি, তারপরে শেষে আমি সেই বিভাজক সারিটি কেটে ফেলব এবং প্রতিস্থাপনগুলি সম্পাদনের আগে পুলের সীমানাটি সংযোজন করব।

সম্পাদনা : @সর্বাধিক ব্যবহৃত ব্যবহৃত চলকটিতে স্যুইচ করে এবং আরম্ভের ক্রমটি অদলবদল করে 3 বাইট সংরক্ষণ করা হয়েছে ।


8

জাভাস্ক্রিপ্ট (ES6), 137 124 বাইট

এটিকে আমার ফোনে কিছুটা নীচে নামিয়েছে, আরও অনুসরণ করতে।

x=>y=>`+--0--+
| +0+ |
${((a=`| |1| |
`)+a+`| |2| |
`).repeat(y-1)+a+a}| +0+ |
+--0--+`.replace(/\d/g,n=>"- :"[n].repeat(x))

চেষ্টা করে দেখুন

f=
x=>y=>`+--0--+
| +0+ |
${((a=`| |1| |
`)+a+`| |2| |
`).repeat(y-1)+a+a}| +0+ |
+--0--+`.replace(/\d/g,n=>"- :"[n].repeat(x))
oninput=_=>o.innerText=f(+i.value)(+j.value);o.innerText=f(i.value=50)(j.value=5)
input{font-family:sans-serif;margin:0 5px 0 0;width:50px;}
<label for=i>L: </label><input id=i type=number><label for=j>x: </label><input id=j type=number><pre id=o>


আমি এটি পছন্দ করি কারণ এটি ইন্টারেক্টিভ: ডি
এক্সডাইজু

@ এক্সডাইজু, আমার অন্যান্য জেএস সমাধানগুলির কয়েকটি পরীক্ষা করে দেখুন, তাই;)
শেগি


4

এসওজিএল ভি0.12 , 52 51 বাইট

:┌* +1Ο;@*┐1ΟG∙⁴++⁰
b3*Ie4+⁰b3*He⁰32žbH∫3*2+4;e :*ž

এখানে চেষ্টা করুন!
এটির 20 বাইটগুলি একটি আয়তক্ষেত্র ফাংশন বিবেচনা করে খারাপ নয়, যা কাঠকয়ালের একটি অন্তর্নির্মিত রয়েছে।

ব্যাখ্যা:

Rectangle function: (example: on stack 4, 2)
:                   duplicate the top of stack (X pos)      [4, 2, 2]
 ┌*                 get that many "-"es                     [4, 2, "--"]
    +               push "+"                                [4, 2, "--", "+"]
     1Ο             wrap the dashes in pluses               [4, 2, "+--+"]
       ;            get the duplicated X position           [4, "+--+", 2]
        @*          get that many spaces                    [4, "+--+", "  "]
          ┐         push "|"                                [4, "+--+", "  ", "|"]
           1Ο       wrap the spaces with "|"                [4, "+--+", "|  |"]
             G      get the Y value ontop                   ["+--+", "|  |", 4]
              ∙     get an array with that many strings     ["+--+", ["|  |", "|  |", "|  |", "|  |"]]
               ⁴    duplicate the dashes wrapped in pluses  ["+--+", ["|  |", "|  |", "|  |", "|  |"], "+--+"]
                ++  add everything to one array             [["+--+", "|  |", "|  |", "|  |", "|  |", "+--+"]]
Main function: (example input: 2, 5)
b3*                              push variable B (input 1, Y length) multiplied by 3                     [6]
   I                             increase it                                                             [7]
    e4+                          push variable E (input 2, X length) + 4                                 [7, 9]
       ⁰                         execute the rectangle function [in X: E+4, Y: b*3+1]                    [["+---------+","|         |","|         |","|         |","|         |","|         |","|         |","|         |","+---------+"]]
        b3*                      push variable B * 3                                                     [["+---------+",..,"+---------+"], 6]
           H                     decrease it                                                             [["+---------+",..,"+---------+"], 5]
            e                    push variable E                                                         [["+---------+",..,"+---------+"], 5, 5]
             ⁰                   execute the rectangle function [on X: E, Y: B*3-1]                      [["+---------+",..,"+---------+"], ["+-----+","|     |","|     |","|     |","|     |","|     |","+-----+"]]
              32ž                at coordinates [3;2] (1-indexed) in the first rectangle put in the 2nd  [["+---------+",
                                                                                                           "| +-----+ |",
                                                                                                           "| |     | |",
                                                                                                           "| |     | |",
                                                                                                           "| |     | |",
                                                                                                           "| |     | |",
                                                                                                           "| |     | |",
                                                                                                           "| +-----+ |",
                                                                                                           "+---------+"]
                 bH∫             iterate over the numbers from 1 to B-1:                                 [[...], 1]
                    3*2+           push pop()*3+2                                                        [[...], 5]
                        4;         push 4 one below the stack                                            [[...], 4, 5]
                          e        push the variable E (X length)                                        [[...], 4, 5, 5]
                            :*     get that many colons                                                  [[...], 4, 5, ":::::"]
                              ž    insert [at coordinates [4; cIter*3+2] the colons]                     


4

পাইথন 2 , 128 126 বাইট

L,x=input()
k='+'+'-'*(L+4)+'+\n| +'+'-'*L+'+ |\n'
f=lambda k:'| |'+k*L+'| |\n'
print k+f(':').join([f(' ')*2]*x)[:-1]+k[::-1]

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

-২ বাইটস @ মিঃ এক্সএক্সকোডারকে ধন্যবাদ



@ মিঃ এক্সকোডার ঠিক আছে, ধন্যবাদ, আমি জানি না যে আমি এই অতিরিক্ত বন্ধনীগুলির সাথে কী ভাবছিলাম: পি
হাইপার নিউট্রিনো



2

Charcoal, 36 bytes

NθNηFη«M³↑P×θ:»←B⁺θ²⁺׳η¹↖←B⁺θ⁶⁺׳η³

Try it online!

This is a more Charcoal-y algorithm than my other answer.


1
Charcoal has officially taken over the whole challenge. 4/10 answers are in Charcoal...
Mr. Xcoder

@Mr.Xcoder Well, it's a language specifically designed to golf ascii-art, so that's what you get for it. ;)
Erik the Outgolfer

1
Explanation request.
CalculatorFeline

@Mr.Xcoder And three of them are the same length too!
Neil

2

C (gcc), 195 bytes

#define P printf
y;f(L,l){char s[L+1],t[L+1];memset(s,45,L);memset(t,58,L);t[L]=s[L]=0;P("+-%s-+\n|+%s+|\n",s,s);for(y=3*l;y-->1;y%3?P("||%*c||\n",L,32):P("||%s||\n",t));P("|+%s+|\n+-%s-+",s,s);}

Try it online!


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