এমন একটি প্রোগ্রামিং ভাষা তৈরি করুন যা কেবল ব্যবহারযোগ্য নয় বলে মনে হয় (ডাকাতদের থ্রেড)


27

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

আপনি যদি একটি ক্র্যাক পোস্ট করেন যা অবৈধ বলে মনে হয়, আপনার এটি মুছে ফেলা উচিত এবং একই উত্তরের বিপরীতে অন্য একটি প্রচেষ্টা পোস্ট করতে অপারগ।

স্কোরিং

এই প্রশ্নের বিজয়ী হলেন ডাকাত যিনি সর্বাধিক সংখ্যক সফল ফাটল তৈরি করেন।

উত্তর:


25

শাফল, লিয়াম নরোনহা রচনা

cinpush

main:
    gte Hans 1s Leopold
    jnz Leopold done

    mov 1s Hans

    gte Gertrude Hans Leopold
    jnz Leopold done

    mov Gertrude ShabbySam
    mov Hans Gertrude
    mov ShabbySam Hans

    gte Alberto Gertrude Leopold
    jnz Leopold done

    mov Alberto ShabbySam
    mov Gertrude Alberto
    mov ShabbySam Gertrude

    done:

    mov 10 ShabbySam

    gte 1s ShabbySam Leopold
    jz Leopold undo_u

    mov 30 ShabbySam
    gte 1s ShabbySam Leopold
    jz Leopold undo_d

    undo_r:

        POP!! 1

        "shuffle" f
        "shuffle" f
        "shuffle" b
        "shuffle" b
        "shuffle" l
        "shuffle" f
        "shuffle" f
        "shuffle" b
        "shuffle" b

        jmp end

    undo_u:

        POP!! 1

        "shuffle" f
        "shuffle" f
        "shuffle" f
        "shuffle" b
        "shuffle" b
        "shuffle" b
        "shuffle" l
        "shuffle" l
        "shuffle" l
        "shuffle" f
        "shuffle" b

        jmp end

    undo_d:

        POP!! 1

        "shuffle" f
        "shuffle" b
        "shuffle" l
        "shuffle" f
        "shuffle" f
        "shuffle" f
        "shuffle" b
        "shuffle" b
        "shuffle" b

    end:
    jnz 1s main

print Hans
done!

এটি সত্যিই দুর্দান্ত মজা ছিল, ধন্যবাদ লিয়াম! :)

সঠিক দিকের দিকে সামান্য তবে প্রয়োজনীয় নুড দেওয়ার জন্য Sp3000 কে ধন্যবাদ।

কিভাবে?

দুটি শব্দ: পকেট কিউব

এটি দেখা যাচ্ছে যে স্ট্যাকগুলি 2x2x2 রুবিকের ঘনক্ষেত্রের মুখের সাথে মিল রয়েছে:

           ____ ____
          |    |    |
          | 19 | 17 |
          |____U____|
          |    |    |
          | 20 | 18 |
 _________|____|____|____ ____ ____ ____
|    |    |    |    |    |    |    |    |
| 13 | 14 |  1 |  2 |  9 | 10 |  6 |  5 |
|____L____|____F____|____R____|____B____|
|    |    |    |    |    |    |    |    |
| 15 | 16 |  3 |  4 | 11 | 12 |  8 |  7 |
|____|____|____|____|____|____|____|____|
          |    |    |
          | 22 | 24 |
          |____D____|
          |    |    |
          | 21 | 23 |
          |____|____|

কোথায় ULFRBDইঙ্গিত পর্যন্ত মুখ অনুরূপ, বাম, সামনে, ঠিক আছে, পিছনে, নিচে যখন ঘনক্ষেত্র সঠিকভাবে গুটান হয়।

আদেশগুলি কোনও এক পাশকে 90 ডিগ্রি (যেখানে নামগুলি কৃতজ্ঞতার সাথে মেলে) দিয়ে ঘোরানোর সাথে সামঞ্জস্য হয়। এটা পরিনত হয় যে f, rএবং dহয় ঘড়ির কাঁটার দিকে ঘুর্ণন (যখন মুখ দেখার) এবং r, lএবং uহয় ঘড়ির কাঁটার বিপরীতে ঘুর্ণন (যখন মুখ দেখার)।

এখন cinpushকমান্ড যেমন পরিচালনা এটি ঘুর্ণন মধ্যে একটি প্রযোজ্য u, dবা r(প্রদত্ত মান উপর নির্ভর করে) এবং তারপর অবস্থানে স্ট্যাকের সম্মুখের ইনপুট মান পাহাড় জমে 1। (এবং তারপরে এটি ইনপুটটিতে প্রতিটি উপাদানগুলির জন্য এটি করার পুনরাবৃত্তি করে)) এর অর্থ আমরা বারবার স্ট্যাকের দিকে তাকিয়ে এই প্রক্রিয়াটি বিপর্যস্ত করতে পারি (কোনও স্বেচ্ছাচারী রুবিকের ঘনক্ষেত্র সমাধান না করেই আমরা স্ট্যাকের সঠিক ক্রমটি শেষ করতে পারি তা নিশ্চিত করতে) অবস্থান 1, সংশ্লিষ্ট ক্রিয়াকলাপটি পূর্বাবস্থায় ফেলা এবং সেই স্ট্যাকের মানটি পপিং করা (যাতে পরবর্তী সময় আমরা স্ট্যাকটি দেখি, আমরা নীচের মানটি পাই)।

আমরা কীভাবে ঘূর্ণনগুলি পূর্বাবস্থায় ফেলি? ধন্যবাদ, আমরা উভয় fএবং bআমাদের নিষ্পত্তি আছে। যদি আমরা উভয়টিই প্রয়োগ করি তবে আমরা পুরো কিউবটিকে 90 ডিগ্রি ঘোরান। এর অর্থ আমরা ক্ষতিগ্রস্থ দিকটি ( U, Rবা D) সরাতে পারি , Lএক বা তিনটি l( lইনপুট চলাকালীন সম্পর্কিত ঘোরের উপর নির্ভর করে ) ব্যবহার করে আবর্তনটি পূর্বাবস্থায় ফিরিয়ে আনতে পারি এবং তারপরে কিউবটিকে তার পূর্ববর্তী ওরিয়েন্টেশনে ফিরে ঘুরিয়ে fএবং bআবার।

বিশেষত, ইনপুট চলাকালীন প্রতিটি ঘূর্ণন নীচে হিসাবে পূর্বাবস্থায় ফেরা যায়:

u --> fffbbblllfb
r --> ffbblffbb
d --> fblfffbbb

আমি দেখব যে আমি কিছু অ্যানিমেশন নিয়ে এসেছি তা দেখানোর জন্য এটি কাজ করে।

এখন এটি আমাদের পুরো ইনপুটটি একবারে পুনরাবৃত্তি করার একটি উপায় দেয়। তবে 5 টি রেজিস্টার সহ, আমাদের কেবল এটির দরকার:

  • Alberto এটি এখন পর্যন্ত সর্বাধিক মানটির মুখোমুখি।
  • Gertrude এটি এখন পর্যন্ত দ্বিতীয় বৃহত্তম মানটির মুখোমুখি।
  • Hans এটি এখন পর্যন্ত তৃতীয় বৃহত্তম মানটির মুখোমুখি।

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

প্রক্রিয়া শেষে, আমরা কেবলমাত্র লিখিত সামগ্রীগুলি মুদ্রণ করি Hansযা ইতিমধ্যে 3 য় বৃহত্তম মানটি ধারণ করবে।


1
এটি মজার যে আপনি পাঁচটি নিবন্ধের প্রত্যেককে আমি ঠিক একইভাবে ব্যবহার করেছি।
লিয়াম

21

স্যাম ক্যাপলম্যান-লেনিসের TKDYNS

এটি সম্ভবত অনুকূল নয়, তবে আমি মনে করি এটি কৌশলটি করে ...

cvcvc>v>^>>^^>>v>vvvvvvvv<<<^<<^<<^^>^<^cvc>v<cvcvcvc^>>vv<<c
>>^>>v>>>^^^^^^^^<^<<vv<<v<^<^^>cv<>^
>>^>>v>>>^^^^^^^^<^<<vv<<v<^<^^>vc^v<>^
>>^>>v>>>^^^^^^^^<^<<vv<<v<^c<^>^
>>^>>v>>>^^^^^^^^<^<<vv<<v<c^<^>^
>>^^<<^^>^c^^<^>^
>>^^<<^^>c<^>^^<^>^
>>^^<^c^<^>^^<^>^
>>^^<c<^^^>^^<^>^
>^cv>^>^<<<^^^>^^<^>^
>c>^>^<<<^^^>^^<^>^
>>^>>v>>>^^^^^^^^<^<<vv<<v<^<^^>>cv^
>>^>>v>>>^^^^^^^^<^<<<v<c^
>>^>>v>>>^^^^^^^^<^<<vv<<c^^
>>^>>v>>>^^^^^^^^<^<<vv<<vcv>>>^<^<<^^
>>^^<<^^>>^c>>>^<^<<^^
>>^^<<^^>>c<^>>>>^<^<<^^
>>^>>v>>^<^^<<<c^<^>>>>^<^<<^^
>>^^c>vv>^^^<<^<^>>>>^<^<<^^
>>^c^>vv>^^^<<^<^>>>>^<^<<^^
>>c^^>vv>^^^<<^<^>>>>^<^<<^^
>>^>>v>>>^^^^^^^^<^<<<c<>
>>^>>v>>>^^^^^^^^<^<<<vc^<>
>>^>>v>>>^^^^^^^^<^<<vv<c^^
>>^>>v>>>^^^^^^^^<^<<vv<vc^^^
>>^^<<^^>>>^c^^^^
>>^^<<^^>>>c^^^^^
>>^>>v>>^<^^<<c^^^^^^
>>^>^c<^^<^>^^^>^
>>^>c^<^^<^>^^^>^
>>>c^^<^^<^>^^^>^
>>^>>v>>>^^^^^^^^<^<<c<<>>
>>^>>v>>>^^^^^^^^<^<<vc<^>
>>^>>v>>>^^^^^^^^<^<<vvc>^<<^>
>>^>>v>>>^^^^^^^^<^<<vv<v>c>^^<<^>
>>^>>v>>>^^^^^^^^<^<<vv<v>>v<c^>^^<<^>
>>^^<<^^>>>>cv<^<^^>^>>^<<^>
>>^>>v>>^<^^<c<^<^^>^>>^<<^>
>>^>>v>>^<^^<vc>^^<v<^<^^>^>>^<<^>
>>^>>c>^^^<v<^<^^>^>>^<<^>
>>^>>vc<<^^>^^<^^>^>>^<<^>
>>^>>v>>>^^^^^^^^<^<cv^
>>^>>v>>>^^^^^^^^<<c^
>>^>>v>>>^^^^^^^^<^<<vv>c<^>^
>>^>>v>>>^^^^^^^^<^<<vv<v>>c<^^>^
>>^>>v>>>^^^^^^^^<^<<vv<v>>vc^<^^>^
>>^>>v>>^<^^^c^^<^^>^
>>^>>v>>^<^^c>v>>^>^<^^^<^<<^
>>^>>v>>^<^c^>v>>^>^<^^^<^<<^
>>^>>v>>^<c^^>v>>^>^<^^^<^<<^
>>^>>v>c^^^>v>>^>^<^^^<^<<^
>>^>>v>>>^^^^^^^^<^c<v^>
>>^>>v>>>^^^^^^^^<c<^>
>>^>>v>>>^^^^^^^^<^<<vv<v>>>^c<vv<<v<^^<^<^^>>>>>>
>>^>>v>>>^^^^^^^^<^<<vv<v>>>c>^<<vv<<v<^^<^<^^>>>>>>
>>^>>v>>>^^^^^^^^<^<<vv<v>>v>c^>^<<vv<<v<^^<^<^^>>>>>>
>>^>>v>>>^^^^<c^^>^<<vv<<v<^^<^<^^>>>>>>
>>^>>v>>^<^^>c<v<v>>v>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
>>^>>v>>^<^^>vc^<v<v>>v>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
>>^>>v>>^cv>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
>>^>>v>>c>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
>>^>>v>>>^^^^^^^^<^>c><
>>^>>v>>>^^^^^^^^c>^<
>>^>>v>>>^^^^^^^c^>^<
>>^>>v>>>^^^^^^c>^<^>^<
>>^>>v>>>^^^^^c^>^<^>^<
>>^>>v>>>^^^^c^^>^<^>^<
>>^>>v>>>^^^c>^^<^>^<^>^<
>>^>>v>>>^^c^>^^<^>^<^>^<
>>^>>v>>>^cv>^^<^>^^<^>^<^>^<
>>^>>v>>>c>^^<^>^^<^>^<^>^<
>>^>>v>>>^^^^^^^^>^c<>
>>^>>v>>>^^^^^^^^>c^<>
>>^>>v>>>^^^^^^^>cv<vvv>v<<^^^^^^>>^
>>^>>v>>>^^^^^^^>vc<vvv>v<<^^^^^^>>^
>>^>>v>>>^^^>^^c^<vvv>v<<^^^^^^>>^
>>^>>v>>>^^^>^c^^<vvv>v<<^^^^^^>>^
>>^>>v>>>^^^>cv<<^^^^^^>>^
>>^>>v>>>^^^>vc<<^^^^^^>>^
>>^>>v>>>^>cv<<<^<<<^>>>>^^^^^^>>^
>>^>>v>>>^>vc<<<^<<<^>>>>^^^^^^>>^
>>^>>v>>>^^^^^^^^>^>cv^
>>^>>v>>>^^^^^^^>>^c^
>>^>>v>>>^^^^^^^>>c^^
>>^>>v>>>^^^>^^>^c^^^
>>^>>v>>>^^^>^^>cvv<^^^^^^>
>>^>>v>>>^^^>^^>vcv<^^^^^^>
>>^>>v>>>^^^>>c<^^^^^^>
>>^>>v>>>^>v>^^cvv<<^<^^>^>^^^^^>
>>^>>v>>>^>v>^cv<<^<^^>^>^^^^^>
>>^>>v>>>^>v>c<<^<^^>^>^^^^^>
cvc<v>cvcvc<v>cvc^<vv>c>>v<v<^cvc
>^>^<<<^^^>^>^>^^<cv^
>^>^<<<^^^>^>^^c^
>^>^<<<^^^>^>^c^^
>^>^<<<^^^>^>cv>>>^<^<<^^
>^>^<^^^c>>>^<^<<^^
>^>^<^^c<^>>>>^<^<<^^
>^>^<^c^<^>>>>^<^<<^^
>^>^<c>vv>^^^<<^<^>>>>^<^<<^^
>^c^>vv>^^^<<^<^>>>>^<^<<^^
>c^^>vv>^^^<<^<^>>>>^<^<<^^
>^>^<<<^^^>^>^>^^c<<>>
>^>^<<<^^^>^>^>^c^<<>>
>^>^<<<^^^>^>^>c^^<<>>
>^>^<<<^^^>^>>c^^^
>^>^<^^^>c^^^^
>^>^<^^>c^^^^^
>^>^<^>c^^^^^^
>^>^c<^^<^>^^^>^
>^>c^<^^<^>^^^>^
>^>>v<c^^<^^<^>^^^>^
>^>^<<<^^^>^>^>^^>c<v<>^>
>^>^<<<^^^>^>^>^^>vc<^>
>^>^<<<^^^>^>^>^^>>>>v<vv<<^c>^<<^>
>^>^<<<^^^>^>^>^^>>>>v<vv<<c>^^<<^>
>^>^<^^^>>c^>^^<<^>
>^>^<^>>^cv<^<^^>^>>^<<^>
>^>^<^>>c<^<^^>^>>^<<^>
>^>^<^>>vc>^^<v<^<^^>^>>^<<^>
>^>>c>^^^<v<^<^^>^>>^<<^>
>^>>vc<<^^>^^<^^>^>>^<<^>
>^>^<<<^^^>^>^>^^>>cv^
>^>^<<<^^^>^>^>^^>>>>v<<c^
>^>^<<<^^^>^>^>^^>>>>v<v<c<^>^
>^>^<<<^^^>^>^>^^>>>>v<vv<c<^^>^
>^>^<<<^^^>^>^>^^>>>>v<v>>v<v<<c^<^^>^
>^>^<<<^^^>^>^>^^>>>>v<v>>v<v<<vc^^<^^>^
>^>^<^>>v>^c>v>>^>^<^^^<^<<^
>^>^<^>>v>c^>v>>^>^<^^^<^<<^
>^>^<^>>v>vc^^>v>>^>^<^^^<^<<^
>^>^<^>>v>vvc^^^>v>>^>^<^^^<^<<^
>^>^<<<^^^>^>^>^^>>>c<v^>
>^>^<<<^^^>^>^>^^>>>>v<c<^>
>^>^<<<^^^>^>^>^^>>>>v<vc<vv<<v<^^<^<^^>>>>>>
>^>^<<<^^^>^>^>^^>>>>v<vvc>^<<vv<<v<^^<^<^^>>>>>>
>^>^<<<^^^>^>^>^^>>>>v<v>>v<v<c^>^<<vv<<v<^^<^<^^>>>>>>
>^>^<^>>v>>>>^<<^c^^>^<<vv<<v<^^<^<^^>>>>>>
>^>^<^>>v>>>>^<<c<v<v>>v>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
>^>^<^>>v>>c^<v<v>>v>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
>^>^<^>>v>>vcv>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
>^>^<^>>v>vv>c>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
>^>^<<<^^^>^>^>^^>>>>c<v^>
>^>^<<<^^^>^>^>^^>>>>vc>^<
>^>^<<<^^^>^>^>^^>>>>v<v>c^>^<
>^>^<<<^^^>^>^>^^>>>>v<v>>v<c>^<^>^<
>^>^<<<^^^>^>^>^^>>>>v<v>>v<vc^>^<^>^<
>^>^<<<^^^>^>^>^^>>>>v<v>>vvv<c^^>^<^>^<
>^>^<^>>v>>>>^<c>^^<^>^<^>^<
>^>^<^>>v>>>c^>^^<^>^<^>^<
>^>^<^>>v>>>vcv>^^<^>^^<^>^<^>^<
>^>^<^>>v>vv>>c>^^<^>^^<^>^<^>^<
>^>^<<<^^^>^>^>^^>>>>>cv^
>^>^<<<^^^>^>^>^^>>>>v>c^
>^>^<<<^^^>^>^>^^>>>>v<v>>cv<vvv>v<<^^^^^^>>^
>^>^<<<^^^>^>^>^^>>>>v<v>>vc<vvv>v<<^^^^^^>>^
>^>^<<<^^^>^>^>^^>>>>v<v>>vvc^<vvv>v<<^^^^^^>>^
>^>^<<<^^^>^>^>^^>>>>v<v>>vvvc^^<vvv>v<<^^^^^^>>^
>^>^<^>>v>>>>^cv<<^^^^^^>>^
>^>^<^>>v>>>>c<<^^^^^^>>^
>^>^<^>>v>>>v>cv<<<^<<<^>>>>^^^^^^>>^
>^>^<^>>v>>>v>>v<c<<<^<<<^>>>>^^^^^^>>^
>^>^<<<^^^>^>^>^^>>>>>>c<v^>
>^>^<<<^^^>^>^>^^>>>>>>vc^<v^>
>^>^<<<^^^>^>^>^^>>>>v<v>>v>^c^^
>^>^<<<^^^>^>^>^^>>>>v<v>>v>c^^^
>^>^<<<^^^>^>^>^^>>>>v<v>>vvv>^cvv<^^^^^^>
>^>^<<<^^^>^>^>^^>>>>v<v>>vvv>cv<^^^^^^>
>^>^<<<^^^>^>^>^^>>>>v<v>>vvv>vc<^^^^^^>
>^>^<<<^^^>^>^>^^>>>>v<v>>vvv>vvcvv<<^<^^>^>^^^^^>
>^>^<^>>v>>>v>>cv<<^<^^>^>^^^^^>
>^>^<^>>v>>>v>>vc<<^<^^>^>^^^^^>
cvcvc>>v>v<<<^cvc<v>cvc>>vvv<^^<cvcvc
^^>vv>>^^^^>^>^>^<^<<^<<c<>
^^>vv>>^^^^>^>^>^<^<<^<<vc^<>
^^>vv>^^^<<^<^>>>>^<^<c^^
^^>vv>^^^<<^<^>>>>^<^<vc^^^
^^>vv>^^^<<^<^>>c^^^^
^^>vv>^^^<^c^^^^^
^^>vv>^^^<c^^^^^^
^^>c<^^<^>^^^>^
^^>vc^<^^<^>^^^>^
^^>vvc^^<^^<^>^^^>^
^^>vv>>^^^^>^>^>^<^<<^<c<<>>
^^>vv>^^^<<^<^>>>>^<^^c<^>
^^>vv>^^^<<^<^>>>>^<^c>^<<^>
^^>vv>^^^<<^<^>>>>^<c>^^<<^>
^^>vv>^^^<<^<^>>>c^>^^<<^>
^^>vv>^^^<<^<^>>>vcv<^<^^>^>>^<<^>
^^>vv>^^^c<^<^^>^>>^<<^>
^^>vv>^^c>^^<v<^<^^>^>>^<<^>
^^>vv>^c>^^^<v<^<^^>^>>^<<^>
^^>vv>c<<^^>^^<^^>^>>^<<^>
^^>vv>>^^^^>^>^>^<^<<^cv<>^
^^>vv>>^^^^>^>^>^<^<<c^v<>^
^^>vv>^^^<<^<^>>>>^>^<c<^>^
^^>vv>^^^<<^<^>>>>^c<^^>^
^^>vv>^^^<<^<^>>>>c^<^^>^
^^>vv>>^^^^c^^<^^>^
^^>vv>>^^^c>v>>^>^<^^^<^<<^
^^>vv>>^^c^>v>>^>^<^^^<^<<^
^^>vv>>^c^^>v>>^>^<^^^<^<<^
^^>vv>>c^^^>v>>^>^<^^^<^<<^
^^>vv>>^^^^>^>^>^<^<<^>c<<<<>>>>
^^>vv>>^^^^>^>^>^<^<c<^><<<<>>>>
^^>vv>^^^<<^<^>>>>^>^c<vv<<v<^^<^<^^>>>>>>
^^>vv>^^^<<^<^>>>>^>c>^<<vv<<v<^^<^<^^>>>>>>
^^>vv>>^^^^>^c^>^<<vv<<v<^^<^<^^>>>>>>
^^>vv>>^^^^>c^^>^<<vv<<v<^^<^<^^>>>>>>
^^>vv>>^^^^>>>v<<c<v<v>>v>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
^^>vv>>>>^<^c^<v<v>>v>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
^^>vv>>>>^<cv>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
^^>vv>>>c>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
^^>vv>>^^^^>^>^>^<^<<^>>c><
^^>vv>>^^^^>^>^>^<^c>^<
^^>vv>>^^^^>^>^>^<c^>^<
^^>vv>>^^^^>^>^c>^<^>^<
^^>vv>>^^^^>^>c^>^<^>^<
^^>vv>>^^^^>>c^^>^<^>^<
^^>vv>>^^^^>>>v<c>^^<^>^<^>^<
^^>vv>>>>^<^>c^>^^<^>^<^>^<
^^>vv>>>>^cv>^^<^>^^<^>^<^>^<
^^>vv>>>>c>^^<^>^^<^>^<^>^<
^^>vv>>^^^^>^>^>^^^c<>
^^>vv>>^^^^>^>^>^^c^<>
^^>vv>>^^^^>^>^>^cv<vvv>v<<^^^^^^>>^
^^>vv>>^^^^>^>^>c<vvv>v<<^^^^^^>>^
^^>vv>>^^^^>>>>^<c^<vvv>v<<^^^^^^>>^
^^>vv>>^^^^>>>c^^<vvv>v<<^^^^^^>>^
^^>vv>>^^^^>>>vcv<<^^^^^^>>^
^^>vv>>>>^<^>>c<<^^^^^^>>^
^^>vv>>>>>>^<cv<<<^<<<^>>>>^^^^^^>>^
^^>vv>>>>>c<<<^<<<^>>>>^^^^^^>>^
^^>vv>>^^^^>^>^>^^>^c<>
^^>vv>>^^^^>^>^>^^>c^<>
^^>vv>>^^^^>^>^>^^>vc^^<>
^^>vv>>^^^^>^>^>>c^^^
^^>vv>>^^^^>>>>^cvv<^^^^^^>
^^>vv>>^^^^>>>>cv<^^^^^^>
^^>vv>>^^^^>>>>vc<^^^^^^>
^^>vv>>>>>>^^cvv<<^<^^>^>^^^^^>
^^>vv>>>>>>^cv<<^<^^>^>^^^^^>
^^>vv>>>>>>c<<^<^^>^>^^^^^>
cvcvcvcvcvcvc^^^^^<vvv<v>vv>cvcvc
^^<^^<^>^^^>>^c<>
^^<^^<^>^^^>>c<^>
^^<^^<^>^^^>v>c>^<<^>
^^<^^<^>^^^>vv>c>^^<<^>
^^<^^<^>^^^>vv>vc^>^^<<^>
^^<^^<^>^^^>vvvvv>^cv<^<^^>^>>^<<^>
^^<^^<^>^^^>vvvvv>c<^<^^>^>>^<<^>
^^<^^<^>^^^>vvvvv>vc>^^<v<^<^^>^>>^<<^>
^^<^^<^>^^^>vvvvv>v>v<c>^^^<v<^<^^>^>>^<<^>
^^<^^<^>^^^>vvvvv>v>vv<c<<^^>^^<^^>^>>^<<^>
^^<^^<^>^^^>>^>cv^
^^<^^<^>^^^>>>c^
^^<^^<^>^^^>v>>c<^>^
^^<^^<^>^^^>vv>>c<^^>^
^^<^^<^>^^^>vv>v>c^<^^>^
^^<^^<^>^^^>vvvvv>^>c^^<^^>^
^^<^^<^>^^^>vvvvv>>c>v>>^>^<^^^<^<<^
^^<^^<^>^^^>vvvvv>v>c^>v>>^>^<^^^<^<<^
^^<^^<^>^^^>vvvvv>v>vc^^>v>>^>^<^^^<^<<^
^^<^^<^>^^^>vvvvv>v>vvc^^^>v>>^>^<^^^<^<<^
^^<^^<^>^^^>>>>>>^<<c>><<
^^<^^<^>^^^>>>>c<^>
^^<^^<^>^^^>vv>>>^c<vv<<v<^^<^<^^>>>>>>
^^<^^<^>^^^>vv>>>c>^<<vv<<v<^^<^<^^>>>>>>
^^<^^<^>^^^>vv>>>vc^>^<<vv<<v<^^<^<^^>>>>>>
^^<^^<^>^^^>vvvvv>v>v>>>^^<^<c^^>^<<vv<<v<^^<^<^^>>>>>>
^^<^^<^>^^^>vvvvv>v>v>>>^^<<c<v<v>>v>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
^^<^^<^>^^^>vvvvv>v>>c^<v<v>>v>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
^^<^^<^>^^^>vvvvv>v>v>cv>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
^^<^^<^>^^^>vvvvv>v>vv>c>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
^^<^^<^>^^^>>>>>>^<c<<>>
^^<^^<^>^^^>>>>>c>^<<<>>
^^<^^<^>^^^>vv>>>^>c^>^<
^^<^^<^>^^^>vv>>>>c>^<^>^<
^^<^^<^>^^^>vvvvv>v>v>>>^^<^^c^>^<^>^<
^^<^^<^>^^^>vvvvv>v>v>>>^^<^c^^>^<^>^<
^^<^^<^>^^^>vvvvv>v>v>>>^^<c>^^<^>^<^>^<
^^<^^<^>^^^>vvvvv>v>v>>^c^>^^<^>^<^>^<
^^<^^<^>^^^>vvvvv>v>v>>cv>^^<^>^^<^>^<^>^<
^^<^^<^>^^^>vvvvv>v>v>>vc>^^<^>^^<^>^<^>^<
^^<^^<^>^^^>>>>>>^cv><^
^^<^^<^>^^^>>>>>>c^v><^
^^<^^<^>^^^>>>>>>^>vv<cv<vvv>v<<^^^^^^>>^
^^<^^<^>^^^>vv>>>>>c<vvv>v<<^^^^^^>>^
^^<^^<^>^^^>vvvvv>v>v>>>^^^^c^<vvv>v<<^^^^^^>>^
^^<^^<^>^^^>vvvvv>v>v>>>^^^c^^<vvv>v<<^^^^^^>>^
^^<^^<^>^^^>vvvvv>v>v>>>^^cv<<^^^^^^>>^
^^<^^<^>^^^>vvvvv>v>v>>>^c<<^^^^^^>>^
^^<^^<^>^^^>vvvvv>v>v>>>cv<<<^<<<^>>>>^^^^^^>>^
^^<^^<^>^^^>vvvvv>v>v>>>vc<<<^<<<^>>>>^^^^^^>>^
^^<^^<^>^^^>>>>>>^>cvvv^^^
^^<^^<^>^^^>>>>>>^>vc^vvv^^^
^^<^^<^>^^^>>>>>>^>vvc^^vvv^^^
^^<^^<^>^^^>vvvvv>v>v>>>^^^^>^c^^^
^^<^^<^>^^^>vvvvv>v>v>>>^^^^>cvv<^^^^^^>
^^<^^<^>^^^>vvvvv>v>v>>>^>^^cv<^^^^^^>
^^<^^<^>^^^>vvvvv>v>v>>>^>^c<^^^^^^>
^^<^^<^>^^^>vvvvv>v>v>>>^>cvv<<^<^^>^>^^^^^>
^^<^^<^>^^^>vvvvv>v>v>>>v>^cv<<^<^^>^>^^^^^>
^^<^^<^>^^^>vvvvv>v>v>>>v>c<<^<^^>^>^^^^^>
c<v>c>v<c>v<cvc^>^<<v<vv>v>^cvc^>vv<c>v<c>^^^<v<v<vv>>c
<<^^>^^<^^>^>>^^c<>
<<^^>^^<^^>^>>^c^<>
<<^^>^^<^^>^>>c<^>^
<<^^>^^<^^>^>>vc<^^>^
<<^^>^^<^^>^>>vvc^<^^>^
<<^^>^>^>c^^<^^>^
<<^^>^>^>vc>v>>^>^<^^^<^<<^
<<^^>^>^>vvc^>v>>^>^<^^^<^<<^
<<^^>^>^>vvvc^^>v>>^>^<^^^<^<<^
<<^^>^>^>vvvvc^^^>v>>^>^<^^^<^<<^
<<^^>^^<^^>^>>^^>c<<>>
<<^^>^^<^^>^>>^>c<^><<>>
<<^^>^^<^^>^>>>c<vv<<v<^^<^<^^>>>>>>
<<^^>^^<^^>^>>vv>^c>^<<vv<<v<^^<^<^^>>>>>>
<<^^>^^<^^>^>>vv>c^>^<<vv<<v<^^<^<^^>>>>>>
<<^^>^^<^^>^>>vv>vc^^>^<<vv<<v<^^<^<^^>>>>>>
<<^^>^>^>vv>^c<v<v>>v>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
<<^^>^>^>vv>c^<v<v>>v>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
<<^^>^>^>vv>vcv>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
<<^^>^>^>vv>v>v<c>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
<<^^>^^<^^>^>>^^>>c>v^<
<<^^>^^<^^>^>>>>^c>^<
<<^^>^^<^^>^>>>>c^>^<
<<^^>^>^>vv>^>^>^^<c>^<^>^<
<<^^>^>^>vv>^>^>^^<vc^>^<^>^<
<<^^>^>^>vv>^>^c^^>^<^>^<
<<^^>^>^>vv>^>c>^^<^>^<^>^<
<<^^>^>^>vv>>c^>^^<^>^<^>^<
<<^^>^>^>vv>v>cv>^^<^>^^<^>^<^>^<
<<^^>^>^>vv>v>vc>^^<^>^^<^>^<^>^<
<<^^>^^<^^>^>>^^>>>cv^
<<^^>^>^>vv>^>^>^^^^c^
<<^^>^>^>vv>^>^>^^^cv<vvv>v<<^^^^^^>>^
<<^^>^>^>vv>^>^>^^c<vvv>v<<^^^^^^>>^
<<^^>^>^>vv>^>^>^c^<vvv>v<<^^^^^^>>^
<<^^>^>^>vv>^>^>c^^<vvv>v<<^^^^^^>>^
<<^^>^>^>vv>^>^>vcv<<^^^^^^>>^
<<^^>^>^>vv>^>^>vvc<<^^^^^^>>^
<<^^>^>^>vv>^>^>vvvcv<<<^<<<^>>>>^^^^^^>>^
<<^^>^>^>vv>v>v>c<<<^<<<^>>>>^^^^^^>>^
<<^^>^>^>vv>^>^>^^^>^^c<>
<<^^>^>^>vv>^>^>^^^>^c^<>
<<^^>^>^>vv>^>^>^^^>c^^<>
<<^^>^>^>vv>^>^>^^>c^^^
<<^^>^>^>vv>^>^>>^cvv<^^^^^^>
<<^^>^>^>vv>^>^>>cv<^^^^^^>
<<^^>^>^>vv>^>^>>vc<^^^^^^>
<<^^>^>^>vv>^>^>>vvcvv<<^<^^>^>^^^^^>
<<^^>^>^>vv>^>^>vvv>cv<<^<^^>^>^^^^^>
<<^^>^>^>vv>v>v>>c<<^<^^>^>^^^^^>
cvc<v>c<v>cvcvc^^<^^>>>v>vvv>v<v<<^<cvcvcvc
^^^>v>>^>^<^^^<^<^c<>
^^^>v>>^>^<^^^<^<c<^>
^^^>v>>^>^<^^^<<c<vv<<v<^^<^<^^>>>>>>
^^^>v>>^>^<^^^<v<c>^<<vv<<v<^^<^<^^>>>>>>
^^^>v>>^>^<^^^<vv<c^>^<<vv<<v<^^<^<^^>>>>>>
^^^>v>>^>^<^^^<^<<<vv>vv>c^^>^<<vv<<v<^^<^<^^>>>>>>
^^^>c<v<v>>v>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
^^^>vc^<v<v>>v>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
^>cv>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
>c>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>
^^^>v>>^>^<^^^<^<^>c><
^^^>v>>^>^<^^^<^c>^<
^^^>v>>^>^<^^^<c^>^<
^^^>v>>^>^<^^^<vc>^<^>^<
^^^>v>>^>^<^^^<vvc^>^<^>^<
^^^>v>>^>^<^^^<^<<<vv>vv>>c^^>^<^>^<
^^^>v>>^<c>^^<^>^<^>^<
^^^>v>c^>^^<^>^<^>^<
^>>cv>^^<^>^^<^>^<^>^<
^^^>v>>>vv<<c>^^<^>^^<^>^<^>^<
^^^>v>>^>^<^^^<^>>^<c<>
^^^>v>>^>^<^^^<^>c^
^^^>v>>^>^<^^^cv<vvv>v<<^^^^^^>>^
^^^>v>>^>^<^^c<vvv>v<<^^^^^^>>^
^^^>v>>^>^<^c^<vvv>v<<^^^^^^>>^
^^^>v>>^>^<c^^<vvv>v<<^^^^^^>>^
^^^>v>>^cv<<^^^^^^>>^
^^^>v>>c<<^^^^^^>>^
^^^>v>>vcv<<<^<<<^>>>>^^^^^^>>^
^^^>v>>>vv<c<<<^<<<^>>>>^^^^^^>>^
^^^>v>>^>^<^^^<^>>^c<<>>
^^^>v>>^>^<^^^<^>>c^<<>>
^^^>v>>^>^<^^^>c^^
^^^>v>>^>^<^^>c^^^
^^^>v>>^>^<^>cvv<^^^^^^>
^^^>v>>^>^cv<^^^^^^>
^^^>v>>^>c<^^^^^^>
^^^>v>>>cvv<<^<^^>^>^^^^^>
^^^>v>>>vcv<<^<^^>^>^^^^^>
^^^>v>>>vvc<<^<^^>^>^^^^^>
c<v>c<^<<<<<vv>v>vv>^>>^^>c>v<cvcvc^^>>vvvv>vv<^<v<^<<^>^>cvc^<v<v>>cvc
>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>>>c><
>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>v>>c>^<
>^>v>^^<^^^^<^c^>^<
>^>v>^^<^^^^<c>^<^>^<
>^>v>^^<^^^<c^>^<^>^<
>^>v>^^<^^<c^^>^<^>^<
^<<^>^>>c>^^<^>^<^>^<
^<<^>^>>vc^>^^<^>^<^>^<
>^cv>^^<^>^^<^>^<^>^<
>c>^^<^>^^<^>^<^>^<
>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>v>>>^c<>
>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>v>>>c^<>
>^>v>^^<^^^^^cv<vvv>v<<^^^^^^>>^
>^>v>^^<^^^^c<vvv>v<<^^^^^^>>^
>^>v>^^<^^^c^<vvv>v<<^^^^^^>>^
>^>v>^^<^^c^^<vvv>v<<^^^^^^>>^
>^>v>^^<^cv<<^^^^^^>>^
>^>v>^^<c<<^^^^^^>>^
>^>cv<<<^<<<^>>>>^^^^^^>>^
>^>vc<<<^<<<^>>>>^^^^^^>>^
>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>v>>>^>cv^
>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>v>>>>c^
>^>v>^^<^^^^<^<<vv<<v<^^<^<^^>>>>>v>>>>vc^^
>^>v>^^<^^^^>c^^^
>^>v>^^<^^>^cvv<^^^^^^>
>^>v>^^<^^>cv<^^^^^^>
>^>v>^^<^^>vc<^^^^^^>
>^>v>^^cvv<<^<^^>^>^^^^^>
>^>v>^cv<<^<^^>^>^^^^^>
>^>v>c<<^<^^>^>^^^^^>
c>v<cvc>v<cvcvc^>vv<cvc>vv<^cvc
>^^<^>^^<^>^<^>^cv><^
>^^<^>^^<^>^<^>c^v><^
>^^<^>^^<^>^cv<vvv>v<<^^^^^^>>^
>^^<^>^^<^>c<vvv>v<<^^^^^^>>^
>^^<^>^^c^<vvv>v<<^^^^^^>>^
>^^<^>^c^^<vvv>v<<^^^^^^>>^
>^^<^>cv<<^^^^^^>>^
>^^c<<^^^^^^>>^
>^cv<<<^<<<^>>>>^^^^^^>>^
>c<<<^<<<^>>>>^^^^^^>>^
>^^<^>^^<^>^>^^c<>
>^^<^>^^<^>^>^c^<>
>^^<^>^^<^>^>c^^<>
>^^<^>^^<^>>c^^^
>^^<^>^^>cvv<^^^^^^>
>^>^^^cv<^^^^^^>
>^>^^c<^^^^^^>
>^>^cvv<<^<^^>^>^^^^^>
>^>cv<<^<^^>^>^^^^^>
>^>vc<<^<^^>^>^^^^^>
cvc<<vvvvvv>>^<^^^>^cvcvcvc^^<vvv>cvc<<<<<<v>>>v>>>^cvc
<<<^<<<^>>>>^^^^^^>>>^c<>
<<<^<<<^>>>>^^^^^^>>>c^<>
<<<^<<<^>>>>^^^^^^>>>vc^^<>
<<<^<<<^>>>>>>^<^^^>v>^c^^^
<<<^<<<^>>>>>>^<^^^>v>cvv<^^^^^^>
<<<^<<<^>>>>>>^>^cv<^^^^^^>
<<<^<<<^>>>>>>^>c<^^^^^^>
<<<^<<<^>>>>>>^>vcvv<<^<^^>^>^^^^^>
^>cv<<^<^^>^>^^^^^>
>c<<^<^^>^>^^^^^>
cvcvcvc^^^<vvvvvv>^^cvcvc<^<v<vv>v>>^^cvcvc

এটি একটি আশ্চর্য হিসাবে আসতে পারে, তবে আমি এটি হাত দিয়ে লিখিনি ... নিম্নলিখিত ম্যাথমেটিকা ​​প্রোগ্রাম দ্বারা কোডটি তৈরি করা হয়েছিল:

layouts = Graph /@ {Labeled[DirectedEdge[#, #2], #3] & @@@ {{0, 1, ">"}, ... };
path[layout_, a_, b_] := 
 StringJoin[
  PropertyValue[{layouts[[layout + 1]], #}, EdgeLabels] & /@ 
   DirectedEdge @@@ 
    Partition[FindShortestPath[layouts[[layout + 1]], a, b], 2, 1]]
safetyCheck[layout_, target_] = "";
safetyCheck[0, 1] = safetyCheck[0, 11] = "v<>^";
safetyCheck[0, 2] = "v^";
safetyCheck[0, 3] = safetyCheck[0, 13] = "<>";
safetyCheck[0, 4] = "<<>>";
safetyCheck[0, 5] = "v^";
safetyCheck[0, 6] = "<v^>";
safetyCheck[0, 7] = "><";
safetyCheck[0, 8] = safetyCheck[0, 18] = "<>";
safetyCheck[0, 9] = "v^";
safetyCheck[1, 2] = "v^";
safetyCheck[1, 3] = safetyCheck[1, 13] = safetyCheck[1, 23] = "<<>>";
safetyCheck[1, 4] = "<v<>^>";
safetyCheck[1, 5] = "v^";
safetyCheck[1, 6] = "<v^>";
safetyCheck[1, 7] = "<v^>";
safetyCheck[1, 8] = "v^";
safetyCheck[1, 9] = safetyCheck[1, 19] = "<v^>";
safetyCheck[2, 3] = safetyCheck[2, 13] = "<>";
safetyCheck[2, 4] = "<<>>";
safetyCheck[2, 5] = safetyCheck[2, 15] = "v<>^";
safetyCheck[2, 6] = safetyCheck[2, 16] = "<<<<>>>>";
safetyCheck[2, 7] = "><";
safetyCheck[2, 8] = safetyCheck[2, 18] = "<>";
safetyCheck[2, 9] = safetyCheck[2, 19] = safetyCheck[2, 29] = "<>";
safetyCheck[3, 4] = "<>";
safetyCheck[3, 5] = "v^";
safetyCheck[3, 6] = ">><<";
safetyCheck[3, 7] = safetyCheck[3, 17] = "<<>>";
safetyCheck[3, 8] = safetyCheck[3, 18] = "v><^";
safetyCheck[3, 9] = safetyCheck[3, 19] = safetyCheck[3, 29] = "vvv^^^";
safetyCheck[4, 5] = safetyCheck[4, 15] = "<>";
safetyCheck[4, 6] = safetyCheck[4, 16] = "<<>>";
safetyCheck[4, 7] = ">v^<";
safetyCheck[4, 8] = "v^";
safetyCheck[4, 9] = safetyCheck[4, 19] = safetyCheck[4, 29] = "<>";
safetyCheck[5, 6] = "<>";
safetyCheck[5, 7] = "><";
safetyCheck[5, 8] = "<>";
safetyCheck[5, 9] = safetyCheck[5, 19] = "<<>>";
safetyCheck[6, 7] = "><";
safetyCheck[6, 8] = safetyCheck[6, 18] = "<>";
safetyCheck[6, 9] = "v^";
safetyCheck[7, 8] = safetyCheck[7, 18] = "v><^";
safetyCheck[7, 9] = safetyCheck[7, 19] = safetyCheck[7, 29] = "<>";
safetyCheck[8, 9] = safetyCheck[8, 19] = safetyCheck[8, 29] = "<>";

minions = {};
For[i = 0, i < 10, ++i,
  collector = "c";
  For[j = i, j < 90, j += 10,
   collector = collector <> path[i, j, j + 10] <> "c"
   ];
  AppendTo[minions, collector];
  For[newI = i + 1, newI < 10, ++newI,
   For[k = 0, k < 10, ++k,
    AppendTo[minions, 
     path[i, j, 10 k + newI] <> "c" <> path[newI, 10 k + newI, newI] <>
       safetyCheck[i, 10 k + newI]]
    ]
   ]
  ];
StringRiffle[minions, "\n"]

আমি আসলে এই সমস্ত safetyCheckলাইন হাতে লিখেছি । তবে সেই গাণিতিক কোডটির প্রথম লাইনটি প্রায় 28,000 অক্ষর দীর্ঘ এবং নিজেই নিম্নলিখিত সিজে্যাম কোড দ্বারা উত্পন্ন হয়েছিল:

'{o
q~]{-1:W;
2b200Te[W%2/{W):W;~\{
  "{"W+","W)++",\">\"}"+
  "{"W)+","W++",\"<\"}"+
  @
}*{
  "{"W+","WA+++",\"v\"}"+
  "{"WA++","W++",\"^\"}"+
}*}%", "*"Labeled[DirectedEdge[#,#2],#3]&@@@{ }"S/\*

]o',oNoNo}/'}

(যা ইনপুট হিসাবে গ্রহণ করে 10 লেআউটটিকে হার্ডডকোড করে দোভাষীর মধ্যে You আপনি কোডটি অনলাইনে চালাতে পারেন ))

কোড প্রজন্মের-ception!

ব্যাখ্যা

শুরু করার জন্য, ম্যাজগুলি দেখতে কেমন তা দেখতে এই সিজেএম স্ক্রিপ্টটি একবার দেখুন।

আমার সমাধানটি একটি গুরুত্বপূর্ণ পর্যবেক্ষণের উপর ভিত্তি করে: যতক্ষণ আমরা একটি কলামে আইটেমগুলি গ্রহণ করি, ততক্ষণ আমরা ঘরগুলি পূরণ করা হয় কিনা তা নির্বিশেষে বিন্যাসগুলির মধ্যে পরিবর্তন করব না। বিশেষত, যতক্ষণ না আমরা বাম-সর্বাধিক কলামটি বরাবর সরাতে থাকি আমরা বিন্যাসে থাকব 0। যতক্ষণ না আমরা পরবর্তী কলামটি বরাবর চলব ততক্ষণ আমরা বিন্যাসে থাকব 1

জটিল বিটটি হ'ল কীভাবে আমাদের লেআউটের মধ্যে পরিবর্তন হয়েছে তা নিশ্চিত করা , কারণ কলামের কোন কোষে 1আইটেম রয়েছে তা আমরা জানি না (যদি থাকে!)।

সুতরাং এখানে আলগোরিদিম ( 0লেআউটে সেল থেকে শুরু 0):

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

    যদি চেষ্টা করা ঘরে কোনও আইটেম থাকে তবে বিন্যাসটি বদলে যাবে এবং আমরা সফলভাবে নতুন কলাম এবং বিন্যাসে পৌঁছে যাব। কারণ নতুন (নিরাপদ) অবস্থান শীর্ষ সারিতে রয়েছে তবে পরবর্তী কলামটি সন্ধানের সমস্ত প্রয়াসে 10 টি নেট upর্ধ্বমুখী পদক্ষেপ অন্তর্ভুক্ত রয়েছে, অন্য সমস্ত প্রচেষ্টা ব্যর্থ হবে, তাই আমরা সেগুলি উপেক্ষা করতে পারি।

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

  3. আমরা এখন সফলভাবে পরবর্তী কলামের শীর্ষে চলে এসেছি যার মধ্যে কমপক্ষে একটি আইটেম রয়েছে। পদক্ষেপ 1 এ ফিরে যান।

আপনি খেয়াল করতে পারেন সমাধানের কাঠামোটি নিম্নরূপ:

Line with 10 "c"s
90 lines with 1 "c"
Line with 10 "c"s
80 lines with 1 "c"
Line with 10 "c"s
70 lines with 1 "c"
Line with 10 "c"s
60 lines with 1 "c"
...
Line with 10 "c"s
10 lines with 1 "c"
Line with 10 "c"s

ম্যাথমেটিকা ​​কোড হিসাবে, safetyCheckস্ট্রিংগুলি হ'ল হাতে তোলা চালনা যা নিশ্চিত করে যে আমরা নতুন লেআউটে পৌঁছেছি। অনুসন্ধানের প্রথম প্যারামিটারটি হ'ল আমরা যে বিন্যাসটি থেকে শুরু করছি এবং দ্বিতীয়টি হল আমাদের চেষ্টা করা ঘর cell যে কোনও সংমিশ্রণগুলি সুস্পষ্টভাবে উল্লেখ করা হয়নি কেবল একটি খালি সুরক্ষা চেক দেয় (কারণ কোনওটির প্রয়োজন নেই)।

Graphএগুলি ছাড়াও, আমি কেবল 10 ম্যাজকে অবজেক্ট হিসাবে স্থাপন করছি , যেখানে কোনও সংলগ্ন (এবং সংযুক্ত) কোষের মধ্যে দুটি নির্দেশিত প্রান্ত রয়েছে, যেখানে প্রতিটি প্রান্তটি প্রান্তটি পেরিয়ে যাওয়ার জন্য প্রয়োজনীয় পদক্ষেপের সাথে টীকাকৃত। সেই জায়গায়, আমি সহজেই ব্যবহার করে পাথগুলি খুঁজে পেতে পারি FindShortestPathএবং তারপরে সংশ্লিষ্ট প্রান্তের লেবেলগুলি বের করতে পারি PropertyValue[..., EdgeLabels]

উপরের অ্যালগরিদম মোটামুটি প্রত্যক্ষভাবে প্রয়োগ করার জন্য বাকী কোডটি কেবল এটির ব্যবহার করে।

আসল গ্রাফ ডেটা সংরক্ষণ করা হয় layoutsএবং সিজেএম স্ক্রিপ্টের সাহায্যে উত্পন্ন হয়েছিল, যা পুলিশ পোস্টে বর্ণিত সংখ্যাগুলি ডিকোড করে এগুলিকে ম্যাথমেটিকা ​​তালিকায় পরিণত করে, যা সহজেই একটি গ্রাফে রূপান্তরিত হতে পারে।




সর্বশেষ সিজেম স্ক্রিপ্টটির জন্য ধন্যবাদ - আমি এটি তৈরি প্রথমবারের মতো আমার তৈরি ম্যাজগুলি!
স্যাম ক্যাপলম্যান-লেনিস

মার্টিন নেতৃত্ব দিচ্ছেন, আমি দেখছি।
seequ

14

এইচপিআর, জাগারব দ্বারা

কোড:

#(*#(!(-)(#(-)()))()!(-)(-)#(!(-)(#(-)()))())(!(-)(#(-)()))#(!(#(!(#(!(-)(#(-)())*#(!(-)(#(-)()))())(!(-)(#(-)()))#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(-)(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(#(*)()#(!(-)(#(-)()))()))))#(!(-)(#(-)()))())#(!(-)(#(-)()))())))!(-)(#(-)()))#(!(-)(#(-)()))())(!(#(!(-)(#(-)())*#(!(-)(#(-)()))())(!(-)(#(-)()))!(-)(#(-)()))(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(-)(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(#(*)()#(!(-)(#(-)()))()))))#(!(-)(#(-)()))())#(!(-)(#(-)()))())))#(!(-)(#(-)()))())!(-)(#(-)()))#(#(!(-)(#(-)()))())(*!(-)(#(-)())))(#(*)())#(!(-)(#(-)()))())(!(-)(#(-)()))!($)(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(#(*)()#(!(-)(#(-)()))())))#(#(!(-)(#(-)()))())(*!(-)(#(-)()))#(*#(!(-)(#(-)()))()!(-)(-)#(!(-)(#(-)()))())(!(-)(#(-)()))#(!(#(!(#(!(-)(#(-)())*#(!(-)(#(-)()))())(!(-)(#(-)()))#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(-)(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(#(*)()#(!(-)(#(-)()))()))))#(!(-)(#(-)()))())#(!(-)(#(-)()))())))!(-)(#(-)()))#(!(-)(#(-)()))())(!(#(!(-)(#(-)())*#(!(-)(#(-)()))())(!(-)(#(-)()))!(-)(#(-)()))(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(-)(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(#(*)()#(!(-)(#(-)()))()))))#(!(-)(#(-)()))())#(!(-)(#(-)()))())))#(!(-)(#(-)()))())!(-)(#(-)()))#(#(!(-)(#(-)()))())(*!(-)(#(-)())))(#(*)())#(!(-)(#(-)()))())(!(-)(#(-)()))!($)(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(#(*)()#(!(-)(#(-)()))())))#(#(!(-)(#(-)()))())(*!(-)(#(-)()))#(*#(!(-)(#(-)()))()!(-)(-)#(!(-)(#(-)()))())(!(-)(#(-)()))#(!(#(!(#(!(-)(#(-)())*#(!(-)(#(-)()))())(!(-)(#(-)()))#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(-)(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(#(*)()#(!(-)(#(-)()))()))))#(!(-)(#(-)()))())#(!(-)(#(-)()))())))!(-)(#(-)()))#(!(-)(#(-)()))())(!(#(!(-)(#(-)())*#(!(-)(#(-)()))())(!(-)(#(-)()))!(-)(#(-)()))(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(-)(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(#(*)()#(!(-)(#(-)()))()))))#(!(-)(#(-)()))())#(!(-)(#(-)()))())))#(!(-)(#(-)()))())!(-)(#(-)()))#(#(!(-)(#(-)()))())(*!(-)(#(-)())))(#(*)())#(!(-)(#(-)()))())(!(-)(#(-)()))!($)(!(!(-)(#(-)())#(!(-)(#(-)()))())(!(!(-)(#(-)())#(!(-)(#(-)()))())(#(*)()#(!(-)(#(-)()))())))!(#(*#(!(-)(#(-)()))())(!(-)(#(-)()))-)(#(#(*#(!(-)(#(-)()))())(!(-)(#(-)()))-)())#(!(-)(#(-)()))()

সবার আগে ... কোডটি তৈরি করা হয়েছিল, হাতে লেখা (বা টাইপ করা হয়নি)।

ভাষা সম্পর্কে তথ্য:

  • এটা তোলে হয় না সমাপ্তি টুরিং।
  • আপনি পরিবেশে প্রাপ্ত পূর্ণসংখ্যার তুলনা করতে পারবেন না।
  • আপনি পরিবেশে পূর্ণসংখ্যার সাথে তালিকায় পূর্ণসংখ্যার তুলনা করতে পারেন।
  • আপনি তালিকায় উপাদান যুক্ত করতে বা তালিকায় উপাদান পরিবর্তন করতে পারবেন না।

প্রোগ্রামটি নিম্নোক্ত psuedocode ব্যবহার করে:

global item
global list = input()

biggest()
remove()
biggest()
remove()
biggest()
print()

def remove():
    while item != list[0]:
        rotate_list
    list.remove(0)
def print():
    rotate_list until item == list[0]
    do until no change:
        list.pop()
        subtract
    removeList()
def biggest():
    item = 0
    while hasListWithElements():
        if item < list1[0]:
            item = list1[0]
        list.remove(0)
    restore list

পরিবেশে প্রায় সবসময় কেবল 1 টি তালিকা এবং 1 টি পূর্ণসংখ্যা থাকে।

এটি সমাধানের জন্য, আমি এই ভাষার জন্য একটি ছোট ম্যাক্রো ইঞ্জিন তৈরি করেছি। এটি মন্তব্যের অনুমতি দেয়। ম্যাক্রো ইঞ্জিনটি এখানে:

import sys

code = {}


filename = sys.argv[1]
f = open(filename, 'r')
prog = f.read()
f.close()

def c(prog):
    for n in prog.splitlines():
        if n.startswith('def'):
            parts = n[4:].split(' ', 2)
            code[parts[0]] = int(parts[1]) ,parts[2]
            prog = prog.replace(n, '', 1)
        elif n.strip().startswith('//'):
            prog = prog.replace(n, '', 1)
    return compile(prog)

def compile(prog):
    ret = ''
    while prog:
        n = prog[0]
        if n == '<':
            name = prog[1:prog.find('>')]
            args_count, formatter = code[name]
            if args_count == 0:
                prog = prog[prog.find('>') + 1:]
                ret += compile(formatter)[0]
                continue;
            prog = prog[prog.find('>') + 2:]
            args = []
            for n in range(args_count):
                arg, prog = compile(prog)
                if n == args_count - 1:
                    arg = arg[:-1]
                args.append(arg)
            ret += compile(formatter.format(*args))[0]
        elif n == ')':
            return ret + ')', prog[1:]
        elif n == ',':
            return ret, prog[1:]
        elif n == '(':
            c, prog = compile(prog[1:])
            ret += '(' + c
        else:
            ret += n
            prog = prog[1:]
    return ret.replace('\n','').replace(' ',''), prog

print(c(prog)[0]) #Use pipes to put into file.

আমি ম্যাক্রো ইঞ্জিনটি তৈরি করার পরে, আমি আস্তে আস্তে এই ভাষার জন্য দরকারী ফাংশনগুলি তৈরি করেছি। ইঞ্জিনটি প্রোগ্রাম তৈরি করতে প্রক্রিয়া করা কোডটি এখানে:

//While loop
def w 2 !({1})({0})

//Detects changes
def c 1 #({0})()

//Do while it changes:
def wc 1 <w>(<c>({0}), {0})

//Remove all items:
def rint 0 <wc>(-)

//Contains list:
def clist 0 <rint>

//Remove all lists:
def rlist 0 #(<rint>)()

//Contains item:
def cint 0 <rlist>

//False (empty environment):
def false 0 <rint><rlist>

//Not:
def not 1 !(<false>)({0})

//Bool (if expression does not evaluate to an empty environment,
// restore the environment to its previous state.
def bool 1 <not>(<not>({0}))

//And
def and 2 <bool>({0}){1}

//Or
def or 2 <not>(<and>(<not>({0}), <not>({1})))

//Combine parts (takes the integer parts of first argument and 
//combines them with the list parts of second argument):
def p 2 #({0}<rlist>)({1}<rint>)

//If, executes an expression if condition evalutates to true. Only works in standard environment.
def if 2 <p>(!({1}<rlist>)(<and>({0}, <rint>)),!({1}<rint>)(<and>({0}, <rlist>)))

//equal (compares item to list[0]) for equality:
def eq 0 <not>(#(*)()<rlist>)

//list.remove(0), does not change item:
def listr 0 <p>(, *)

//remove, removes item from list, goes into infinite loop if list does not contain item.
def remove 0 <w>(<not>(<eq>), $)<listr>

//Greater than or equal, item >= list[0]: 
def ge 0 <w>(<and>(<not>(<eq>), <rlist>), -)<rlist>

//Less than, item < list[0]:
def lt 0 <not>(<ge>)

//Zero, sets item to zero:
def zero 0 <p>(*<rlist>!(-)(-), )

//Biggest, puts biggest item in the list into item:
def biggest 0 <zero><p>(<w>(<c>(*), <if>(<lt>, <p>(<rint>*, ))<listr>), )

//print item, item must be somewhere on list.
def print 0 <w>(<not>(<eq>), $)<wc>(<p>(*, )-)<rlist>

//The actual program!!!!
<biggest>
<remove>
<biggest>
<remove>
<biggest>
<print>

এটি দুর্দান্ত, আমি ম্যাক্রো সিস্টেমটি পছন্দ করি!
Zgarb

9

ব্রায়ান অ্যান্ড চক মার্টিন বাটনার

নিম্নলিখিত পাইথন ২.7 প্রোগ্রামটি ব্রায়ান অ্যান্ড চকের একটি ব্রেনফাক প্রোগ্রাম অনুবাদ করে আমার ব্রায়ান এবং চক প্রোগ্রামকে আউটপুট করে (ব্যতিক্রমটি যা .সর্বদা প্রিন্ট করে 1, যেহেতু আমাদের আউটপুটটির প্রয়োজন এটিই কেবল অক্ষর)।

কন্ট্রোল ফ্লো ব্রায়ানকে কোডের সঠিক অবস্থানে প্রেরণের জন্য চকের টেপ কমান্ডগুলিতে লেখার মাধ্যমে যাদু দ্বারা কাজ করে ।

মনে রাখবেন যে বিএন্ডসি []প্রোগ্রামে সাদা স্থান এবং যুক্তগুলি কেবল আলংকারিক।

def brainfuck_to_brianchuck(code):
    # find biggest jump needed
    biggest_jump = 0
    idx = 0
    while idx < len(code):
        if code[idx] == '[':
            end = matching_bracket(code,idx)
            jump = sum(c == '[' for c in code[idx:end])
            if jump > biggest_jump:
                biggest_jump = jump
            idx = end
        idx += 1
    block_size = biggest_jump*4 + 4

    fragments = []
    depth = 0
    for idx,c in enumerate(code):
        if c in '<>':
            fragments.append(block_size*c)
        elif c == '[':
            end = matching_bracket(code,idx)
            jump = sum(c == '[' for c in code[idx:end])
            fragments.append('\n' + '  '*depth)
            fragments.append('[ ' + open_while(jump))
            depth += 1
            fragments.append('\n' + '  '*depth)
        elif c == ']':
            start = matching_bracket(code,idx)
            jump = sum(c == '[' for c in code[start:idx])
            depth -= 1
            fragments.append('\n' + '  '*depth)
            fragments.append('] ' + close_while(jump))
            fragments.append('\n' + '  '*depth)
        elif c == '.':
            fragments.append('>' + write('0>.?',True) + '<<<?1<<<' + write('0>.?',False) + '<<<<')
        elif c in ',+-':
            fragments.append(c)
    return ''.join(fragments) + '\n```'


def open_while(jump):
    fragments = []

    right = '0' + '}>}>'*jump + '?'
    fragments.append('>' + write(right,True))
    r = len(right)-1
    fragments.append('<'*r + '?' + '_0')

    left = '{<{<'*jump + '>>?'
    l = len(left)-1
    fragments.append('<'*l)
    fragments.append(write(left,False))
    fragments.append('<'*l + '<')

    return ''.join(fragments)

def close_while(jump):
    fragments = []

    right = '0' + '}>}>'*jump + '?'
    fragments.append('>' + write(right,True))
    r = len(right)-1
    fragments.append('_0' + '<'*r)
    fragments.append(write(right,False))
    fragments.append('<'*r)

    left = '{<{<'*jump + '>>?'
    l = len(left)-1
    fragments.append(write(left,True))
    fragments.append('<'*l + '<' + '?>')
    fragments.append(write(left,False))
    fragments.append('<'*l + '<')

    return ''.join(fragments)

# returns the code to write s, or erase it if increment is False
def write(s,increment):
    c = '+' if increment else '-'
    return '>'.join(c*ord(a) for a in s)

def matching_bracket(code, idx):
    bracket = code[idx]
    other_bracket = ']' if bracket == '[' else '['
    direction = 1 if bracket == '[' else -1
    idx += direction
    while code[idx] != other_bracket:
        if code[idx] == bracket:
            idx = matching_bracket(code, idx)
        idx += direction
    return idx

print brainfuck_to_brianchuck('''
-
>,------------------------------------------------[
    ,------------------------------------------------[
        ->+>>>[>+<<<<->>>-]<[>+<<<->>-]<[>+<<->-]>>>[<+>-]<<<<[>+<-]
        >>>>>,------------------------------------------------
    ]
    <+[-<<<<<<+]-
    >,------------------------------------------------
]
>>>>[.>>>>>>].
''')

সুন্দর কাজ. বি ও সি টিউরিং-সম্পূর্ণ প্রমাণ করার জন্য ধন্যবাদ ;) (ভাল আমি অনুমান করি আমাদের অনুবাদটি সঠিক করার জন্য আমাদের কোনও আনুষ্ঠানিক প্রমাণ প্রয়োজন, তবে উত্পন্ন প্রোগ্রামটি দুর্দান্তভাবে কাজ করছে বলে মনে হচ্ছে))
মার্টিন ইন্ডার

8

ফায়ারটাইপ, কির্বিফ্যান64সোস দ্বারা

ওয়ার্কিং, মন্তব্য কোড:

_ Beginning of the loop where one iteration reads one unary number.
- Decrement to cancel the next +, which is part of the loop.
+ Increment... this is executed once for each 1 we read.
, Read a character.
^ "eval"
# Negate.
* Double three times to get -8 if we read a 1 and 0 otherwise.
*
*
% If we read a 1, jump back to the +. Otherwise, continue.
# Negate the resulting number to reverse the sort order later.
` Duplicate...
~ Logical NOT twice, to turn non-zero results into 1 (zeroes remain zeroes).
~
* Double, double, square, double, negate, to get -32 if the last number
* we read was non-zero. The double-0 at the end of the input leads to a
| zero being read as a unary number, which we use as the termination
* condition. When this is the case, the current cell will be 0 instead  
# of -32. The next lines are padding to get the jump right...












% So... if the unary number was not 0, jump back to the _.
\ Sort the list... the sort is descending, but we negated all the values...
< That means the largest value next to the pointer now, just with a minus
< sign. We move to the left three times to find the place where the third
< largest value is.
# Negate to get its positive value again.
` Duplicate to ensure we've got a cell to the left of the result.
< Move left to the other copy.
~ Logical NOT twice, to turn it into a 1.
~
> Move right to the result.
! This moves the pointer to the left (onto the 1) and executes "." (print)
. "result" times, printing the result in unary. Yay!

এটি বর্তমানে সিপির উত্তরে প্রদত্ত দোভাষীর উপর নির্ভর করে, যা সম্পর্কিত %এবং এর সাথে ডকুমেন্টেশনের সামান্য বিপরীত !

এখানে মূল চ্যালেঞ্জটি ছিল ইনপুটটি পার্স করা, যেহেতু \মোটামুটি সহজভাবে তৃতীয় বৃহত্তম মান খুঁজে পাওয়া যায়।


1
এটি আসলে আমার উদ্দেশ্যযুক্ত সমাধানের চেয়ে কম!
kirbyfan64sos

6

অ্যাক!

এই ল্যাংটিতে ভয়াবহ তুলনা সমর্থন রয়েছে।

Count b while 0 {
}
Count c while 0 {
}
Count a while N-48 {
    Count q while N-48 {
    }
    Count a while _ {
        _ - 1
    }
    a - (q + 1)
    Count z while (z-(10^6+1)) * (_ - z) {
    }
    Count x while (_ - z) {
       b
       Count c while _ {
           _ - 1
       }
       a
       Count b while _ {
           _ - 1
       }
       q
       Count a while _ {
           _ - 1
       }
       z
    }
    z-((10^6)+1)
    Count x while _ {
        b - (q + 1)
        Count f while (f-(10^6+1)) * (_ - f) {
        }
        Count x while (_ - f) {
            b
            Count c while _ {
                _ - 1
            }
            q
            Count b while _ {
                _ - 1
            }
            f
        }
        f-((10^6)+1)
        Count x while _ {
            c - (q + 1)
            Count k while (k-(10^6+1)) * (_ - k) {
            }
            Count x while (_ - k) {
                q
                Count c while _ {
                    _ - 1
                }
                k
            }
            0
        }
        0
    }
    0
    Count j while (a - _) {
        _ + 1
    }
}
c
Write 49
Count h while _ {
    Write 49
    _ - 1
}

count [varname] while 0শুরুতে বিবৃতি পরিবর্তনশীল বৃহত্তম নম্বর, দ্বিতীয় বৃহত্তম নম্বর, তৃতীয় বৃহত্তম সংখ্যা, এবং তাই উপর অধিষ্ঠিত ঘোষণা করতে চলেছেন। তুলনা দুটি সংখ্যার বিয়োগ করে সম্পন্ন হয় তারপরে ফলাফলটি নেতিবাচক কিনা তা পরীক্ষা করে যদি এটি কম সংখ্যক কম হয় কিনা 10^6


স্বীকারোক্তি করুন! ভাল কাজ, যদিও আমি যা যাচ্ছিলাম তার থেকে এটি আলাদা। আমি ভীত ছিলাম যে কেউ একটি ফাঁক খুঁজে পেতে পারে। AC ++ এর জন্য অঙ্কন বোর্ডে ফিরে যান !
DLosc

Acc !! পোস্ট করা হয়েছে;)
DLosc

5

জিঙ্ক, কিরবিফ্যান64সোস দ্বারা

ভাষাটি কীভাবে কাজ করে তা আমি একবার বুঝতে পেরেছিলাম, এটি এত কঠিন ছিল না। যদিও পার্সার ত্রুটিগুলি পাওয়া কঠিন ছিল তবে কিছু অতিরিক্ত অতিরিক্ত বন্ধনী যুক্ত করা এটি ঠিক করেছিল বলে মনে হয়েছিল। সমাধান এখানে:

let
+=cut
in {d:{c:({b:{a:S^((#S)-_)-1}^_})+0$#c}^_=2}

ব্যাখ্যা

প্রথম এবং দ্বিতীয় সারিতে, আমি অপারেশন +হতে সংজ্ঞায়িত করেছি cut। বাকীটি সেট আপ হয়। আসুন 101011101100উদাহরণ হিসাবে ইনপুটটি নেওয়া যাক এবং ভিতরের দিক থেকে শুরু করুন:

{a:S^((#S)-_)-1}

এটি aইনপুট সেট থেকে সেই উপাদানগুলিকে গ্রহণ করে S = {1,0,1,0,1,1,1,0,1,1,0,0}যার সূচকটি নয় len(S)-1, সুতরাং সর্বশেষটি ব্যতীত। আমি লক্ষ্য করেছি যে এটি সেটটিও বিপরীত করে, ফলস্বরূপ A = {0,1,1,0,1,1,1,0,1,0,1}। পরবর্তী, বোধগম্যতা

{b:A^_}

Aপ্রথম ব্যতীত সমস্ত উপাদান গ্রহণ করে এবং এটি আবার বিপরীত হয়, ফলস্বরূপ B = {1,0,1,0,1,1,1,0,1,1}। তারপরে, আমরা এসগুলিতে বিভক্ত Bহয়ে গেলাম 0(এর ফলস্বরূপ {1,1,{1,1,1},{1,1}}বা এর বিপরীতে, আমি কোনটি পরীক্ষা করিনি), এবং ফলাফলটি দৈর্ঘ্য অনুসারে বাছাই করি। সিঙ্গলটন সেটগুলি সমতল করা হয়েছে তবে সেগুলি সমস্ত 1তাই তাদের দৈর্ঘ্য এখনও 1 টি the এখানে কোডটি এখানে:

{c:(B)+0$#c}

এর ফলস্বরূপ C = {{1,1,1},{1,1},1,1}। অবশেষে, আমরা সূচক 2 দ্বারা উপাদান ব্যতীত সমস্ত কিছুই ফিল্টার আউট করি

{d:C^_=2}

এটি D = {1}আমাদের ক্ষেত্রে সেট এ ফলাফল । সাধারণভাবে, এটি ফর্মটি থাকতে পারে {{1,1,..,1}}, তবে কেবলমাত্র 1এসগুলি মুদ্রিত হওয়ার পরে এটি কোনও বিষয় নয় ।


4

কম্পাস স্যুপ, বিএমএসি দ্বারা

এই মজা ছিল।

সম্পাদনা করুন: বিএমএকের দোভাষীর কাজ করার জন্য এই প্রোগ্রামটি অবশ্যই একটি নতুন লাইন দিয়ে প্রম্পেন্ড করা উচিত। কোড ব্লকে নতুন লাইনটি উপস্থিত হতে পারে বলে মনে হচ্ছে না।

!p#eXj0sXj0sp#exj#ss
   n Apw   w  n   w
s                  w
     s    w s         w   s    w         s    w           e s
eXj0seXj0sn ep0Yp+yXj0nYp#exj+sneXp exj#seXj+snep+eXj#sxj+nseXp exj#ss
n   w    ej#ns                e n   n   w    e n  n   w         n   w
                          n                                w         
s                                                                    w
             e          s
    y
s                     Yw
eXj+np yjCs       C    n
          ejBs    B pC n
                e A pB n
             ej0n 0 pA n
s                       w
              e s
exj#s X   eXj#nsejCsp1s
n   w     n        w  w
               w
@>
#

প্রোগ্রামটি 4 টি কার্যকরকরণ বিভাগে বিভক্ত।

প্রথম, লাইন 1, একটি appends #ইনপুট শেষে ফাইন্ডিং দ্বারা 00এবং 2nd প্রতিস্থাপন 0সঙ্গে #। এটি সমস্ত 1এসকেও পরিবর্তন করে A, যেহেতু আমি 1যতটা সম্ভব সোর্স কোডে কয়েকটি সংখ্যক থাকতে চাই ।

5 নং লাইনে দ্বিতীয় বিভাগটি ইনপুটটিতে দ্বিতীয় নম্বরটি এনেছে এবং এটিকে স্ট্রিং হিসাবে প্রথম সংখ্যার নীচে রাখে +। উদাহরণস্বরূপ, যদি ইনপুট হয় 11011101100তবে তারপরে নিম্নলিখিতটি হবে:

#AA00000AA0#
#+++

তৃতীয় অধ্যায়, লাইন 12 এ, এর স্ট্রিং সম্মিলন +প্রথম সংখ্যা সঙ্গে S: প্রতিটি 0একটি উপরে +হয়ে A, Aহয়ে B, Bহয়ে C, এবং Cঅপরিবর্তিত রয়ে গেছে। এরপরে, পরবর্তী সংখ্যাটি আনতে আমরা ২ য় বিভাগে ফিরে যাই।

সমস্ত সংখ্যা এইভাবে একত্রিত হয়ে গেলে, আমরা 18 লাইনের চূড়ান্ত বিভাগে পৌঁছেছি Cs এর সংখ্যাটি আমাদের কাঙ্ক্ষিত আউটপুট, তাই আমরা এগুলিকে পরিবর্তন করব 1, প্রথমটি এড়িয়ে যাচ্ছি Cকারণ 1উত্স কোডে একটিও আছে যা বরাবর মুদ্রিত হয় along আউটপুট সহ।


আমি আনন্দিত এটি মজা ছিল! আমি আশা করেছিলাম যে কোডটিতে 1s ব্যবহারের আগে আপনাকে কোডটি শেষ হওয়ার আগে পরিষ্কার করে ফেলতে হবে, তবে আমি অনুমান করি যে আপনি এটির পরিবর্তে A ব্যবহার করে: D।
বিএমাক

1
আমার সমাধান যোগ করা হয়েছে।
বিএমাক

@ ফেয়ারসাম আমি ভুলে গিয়েছিলাম আমি দোভাষীকে সংশোধন করেছি। নতুন প্রোগ্রামের সাথে আমার প্রোগ্রামটি প্রস্তুত করা এটি ঠিক করা উচিত।
পিচবোর্ড_বক্স

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