কে ন্যায় বিচারক?


18

রাজত্ব কে করবে?

আপনাকে একটি পরিবার গাছ দেওয়া আছে যার মধ্যে রয়েছে: পরিবারের প্রতিটি সদস্যের জন্য নাম, লিঙ্গ, জন্ম তারিখ, মৃত্যুর তারিখ এবং উত্তরাধিকারীদের একটি তালিকা। আপনি গাছকে উপস্থাপন করতে কোনও সুবিধাজনক (নেস্টেড) তালিকা ফর্ম্যাট ব্যবহার করতে পারেন। নিম্নলিখিত উদাহরণগুলি JSON ব্যবহার করবে। কে রাজ্যে রাজত্ব করবে এবং কোন ক্রমে নির্ধারণ করবে। উত্তরাধিকারের নিয়মগুলি নিম্নলিখিত:

  1. কোনও রাজা মারা গেলে রাজ্যটি তার সবচেয়ে পুরানো বৈধ পুরুষ সন্তানের কাছে যায়।
  2. যদি কিছু না থাকে তবে এটি প্রাচীনতম আইনী শিশু সন্তানের কাছে যায়।
  3. বাদশাহর কোন উত্তরাধিকারী না থাকলে রাজত্বটি সবচেয়ে প্রাচীন কৌনিক রাজার ভাইয়ের কাছে যায়
  4. যদি কোনও পুরুষ ভাই না থাকে তবে রাজ্যটি সবচেয়ে প্রাচীন লিগের রাজার বোনের কাছে যাবে
  5. সমস্ত বৈধ আত্মীয় যদি মারা যায় তবে উপরের বিধিগুলি প্রয়োগ করে রাজ্যটি নিকটতম জারজদের কাছে যায়
  6. কোনও বৈধ বা জারজদের আত্মীয়দের জীবন্ত মুদ্রণ না হলে LINE EXTINCT

আমরা কোনও বৈধ পুত্রকে তার বাবার মতো একই "বাড়ি" নামযুক্ত হিসাবে সংজ্ঞায়িত করি।

উদাহরণ:

ইনপুট {}

আউটপুট LINE EXTINCT

ইনপুট

{
    "name" : "Maegor",
    "house" : "Targaryen",
    "birth" : 12,
    "death" : 48,
    "sex" : "male",
    "heirs" : []
}

আউটপুট 12-48: Maegor, LINE EXTINCT

ইনপুট

{
    "name" : "Jaehaerys",
    "house" : "Targaryen",
    "birth" : 34,
    "death" : 103,
    "sex" : "male",
    "heirs" : [
        {
        "name" : "Viserys",
        "house" : "Targaryen",
        "birth" : 77,
        "death" : 129,
        "sex" : "male",
        "heirs" : []
        }
    ]
}

আউটপুট 34-103: Jaehaerys, 103-129: Viserys, LINE EXTINCT

ইনপুট

{
        "name" : "Eddard",
        "house" : "Stark",
        "birth" : 263,
        "death" : 299,
        "sex" : "male",
        "heirs" : [
            {
            "name" : "Robb",
            "house" : "Stark",
            "birth" : 283,
            "death" : 300,
            "sex" : "male",
            "heirs" : []
            },
            {
             "name" : "Jon",
             "house" : "Snow",
             "birth" : 284,
             "death" : 384,
             "sex" : "male",
             "heirs" : []
            },
            {
             "name" : "Sansa",
             "house" : "Stark",
             "birth" : 286,
             "death" : 320,
             "sex" : "female",
             "heirs" : []
            },
            {
             "name" : "Arya",
             "house" : "Stark",
             "birth" : 289,
             "death" : 350,
             "sex" : "female",
             "heirs" : []
            },

            {
             "name" : "Brann",
             "house" : "Stark",
             "birth" : 290,
             "death" : 315,
             "sex" : "male",
             "heirs" : []
            },
            {
             "name" : "Rickon",
             "house" : "Stark",
             "birth" : 295,
             "death" : 319,
             "sex" : "male",
             "heirs" : []
            }

        ]
    }

আউটপুট: 263-299: Eddard, 299-300: Robb, 300-315: Brann, 315-319: Rickon, 319-320: Sansa, 320-350: Arya, 350-384: Jon, LINE EXTINCT

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

আপনি ধরে নিতে পারেন যে কোনও যমজ জন্মগ্রহণ করবে না।

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

শুভকামনা !!!


1
"বেস্টার্ডস" কীভাবে উপস্থাপিত হয়?
ASCIIThenANSI

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

@ উইজার্ডঅফমেনলো তাই তাদের বাড়ির নাম কি তাদের পরিবারের নাম?
ASCIIThenANSI

1
@ উইজার্ডফ মেনলো পয়েন্ট 3টি কিছুটা অস্পষ্ট - In case the king had no sons the realm goes to the oldest legit king's brother। এটি পয়েন্ট 2 এর সাথে বিরোধ বলে মনে হচ্ছে (যদি কোনও বৈধ পুত্র না হয় তবে সবচেয়ে প্রাচীন কন্যা মেয়েকে মুকুট দেওয়া হয়)। আপনার মানে কি বিন্দু 3 এর heirsপরিবর্তে sons?
কামেহামেহা

1
@ কামেমেহেহা হ্যাঁ, আমি এখনই এটি সম্পাদনা করব
উইজার্ড অফ মেনলো

উত্তর:


6

পিএইচপি, 664 বাইট

আমি নিশ্চিত নই যে কোড গল্ফিংয়ের জন্য 664 বাইট ফিট করে তবে এখানে এটি রয়েছে:

$k=json_decode($argv[1]);$s=[];$f='array_shift';$r='heirs';$e='death';$y='year';function s
($k,&$e){uasort($e,function($a,$b)use($k){$c=$a->{$h='house'};$d=$b->$h;$e=$k->$h;if($c==$e
&&$d!=$e)return-1;elseif($c!=$e&&$d==$e)return 1;elseif($a->sex<$b->sex)return 1;elseif($a
->sex>$b->sex)return -1;else return$a->birth-$b->birth;});}function d(&$e,$y){foreach($e 
as$i=>$h)if($h->death<=$y)unset($e[$i]);};($x=(array)$k)&&$k->$y=$k->birth;$l=[];while($x)
{$l[]=$k;$z=$k->$e;s($k,$k->$r);d($k->$r,$k->$e);if($k->$r){$s=$k->$r;$k=$f($s);}else{s($k
,$s);d($s,$k->$e);$k=$f($s);}if(!$k)break;$k->$y=$z;}foreach($l as$k)
echo"{$k->$y}-{$k->$e}: $k->name, ";echo"LINE EXTINCT";

এটি প্রথম কমান্ড লাইন আর্গুমেন্ট হিসাবে JSON স্ট্রিং ইনপুট গ্রহণ করে।

অ্যালগরিদম চ্যালেঞ্জটিতে বর্ণিত পদক্ষেপগুলি অনুসরণ করে (রাজার কাছ থেকে শুরু করে, তারপরে উত্তরাধিকারী বাছাই করে এবং তারপরে ভাইকে পরবর্তী রাজা খুঁজে বের করে)।

ডেমো


সেটা দ্রুত ছিল!
উইজার্ডঅফমেনলো

whileপিএইচপি :) এ গল্ফ দেওয়ার সময় লুপ নিষিদ্ধ।
ব্ল্যাকহোল

আমি মনে করি যে একটি ভুল আছে, আমি এটি এখানে পরীক্ষা করেছি এবং এটি লিঙ্কটি সঠিকভাবে লাইনটির নিচে চলে গেছে, তবে জোন স্নোকে এটির সঠিক সিংহাসন দিতে ব্যর্থ না হওয়ার পরে
উইজার্ডঅফমেনলো

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

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