"আমি যার প্রেমে পড়েছি তার জন্য একটি উপহার কিনতে আমি আরবি বাজারে যেতে চাই। তবে, আমি খুব দেরীতে এলে সমস্ত স্টোর বন্ধ হয়ে যাবে এবং আমি কিছুই কিনতে পারব না। আপনি কি সহায়তা করতে পারবেন? আমি? "
লক্ষ্য: সমস্ত স্টোর বন্ধ হওয়ার আগে উত্তর রিচমন্ড স্ট্রিট থেকে ছেলেটিকে আরবিতে নিয়ে যান।
আসল লক্ষ্য: নিশ্চিত হয়ে নিন যে দোকানগুলি বন্ধ হওয়ার আগে ছেলে আরবে না আসে।
আপনার প্রোগ্রামটি নিম্নলিখিত বিন্যাসে ইনপুট নেবে:
<time> <map>
কোথায়
<time>
কয়েক মিনিটের মধ্যে ছেলেটি ভ্রমণে ব্যয় করতে পারে এমন সর্বোচ্চ সময়। এটি একটি ইতিবাচক পূর্ণসংখ্যা।<map>
ট্রেনটি যে রুটগুলিতে নিতে পারে তার একটি গ্রাফ।
গ্রাফের ফর্ম্যাটটি কীভাবে কাজ করে তা এখানে:
- প্রতিটি বিবৃতি একটি সেমিকোলন দিয়ে শেষ হয়।
- মানচিত্রে নোডগুলি (যা স্যুইচগুলি উপস্থাপন করে) একক লোয়ার কেস অক্ষর ব্যবহার করে উপস্থাপিত হয়।
- নোডের মধ্যে একটি পাথ সিনট্যাক্সের সাথে প্রতিনিধিত্ব করা হয়
a,X,b
, যেখানেX
পথটির ওজন উপস্থাপন করে এমন একটি পূর্ণসংখ্যা হয়। পথটির ওজন সময়, মিনিটের মধ্যে, ট্রেনটি সেই দুটি নোড দিয়ে যেতে সময় নেয়। - আরবীর সাথে প্রতিনিধিত্ব করা হয়
a
, এবং উত্তর রিচমন্ড স্ট্রিট একটি এর সাথে প্রতিনিধিত্ব করা হয়n
। - সমস্ত পাথ দ্বি নির্দেশমূলক।
উদাহরণস্বরূপ, এই গ্রাফ (পথগুলি দ্বি নির্দেশমূলক) ভান করুন:
উইকিমিডিয়া কমন্সের মাধ্যমে আর্টিয়াম ক্যালিনিনের ছবি । সিসি বাই-এসএ 3.0 লাইসেন্সের আওতায় ব্যবহৃত ।
গ্রাফ স্বরলিপি হিসাবে রেকর্ড করা হবে:
a,4,b;a,2,c;b,5,c;b,10,d;c,3,e;e,4,d;d,11,f;
মনে রাখবেন যে এই ইনপুটটিতে একটি নেই n
, সুতরাং এটি একটি অবৈধ ইনপুট। যদি কোনও অবৈধ ইনপুট দেওয়া হয় তবে আপনার প্রোগ্রামটি কিছু করতে পারে।
এখানে একটি উদাহরণ ইনপুট:
21 n,4,b;n,2,c;b,5,c;b,10,d;c,3,e;e,4,d;d,11,a;
(এটি a
প্রতিস্থাপন n
এবং f
প্রতিস্থাপনের সাথে উপরের চিত্রের ঠিক ঠিক একই গ্রাফ a
)।
ছেলে থেকে পেতে আবশ্যক n
থেকে a
21 মিনিটের মধ্যে। যদি তিনি n
-> c
-> e
-> d
-> রুটটি নেন তবে তিনি a
20 মিনিটের মধ্যে সেখানে পৌঁছে যা সময় মতো। নোডের কমা দ্বারা পৃথক করা তালিকা হিসাবে আমরা সেই রুটটি উপস্থাপন করতে পারি:
n,c,e,d,a
অন্যদিকে, রুট n
-> b
-> c
-> e
-> d
-> a
ছেলের 27 মিনিট সময় নিতে পারে, যা সময়মতো নয়। আমরা এই পথটির প্রতিনিধিত্ব করতে পারি:
n,b,c,e,d,a
আরেকটি সম্ভাব্য রুট যা ছেলেকে সময়মতো এটি তৈরি করতে না পারে তা হ'ল:
n,b,c,b,c,b,c,b,c,b,c,b,c,b,c,b,c,b,c,e,d,a
আপনার প্রোগ্রামটি উপরে বর্ণিত হিসাবে ইনপুটটি নেওয়া উচিত এবং প্রথম নজরে এমন কোনও রুট আউটপুট প্রদর্শিত হবে যা ছেলেকে সময়মতো তৈরি করবে, কিন্তু আসলে এমন একটি রুট আউটপুট দেয় যা ছেলেকে সময়মতো না তৈরি করে। যে কোনও ইনপুটটির জন্য ব্যাকট্র্যাকিং ছাড়াই সর্বদা একটি রুট উপস্থিত থাকবে, যার ফলে ছেলেটি সময়মতো এটি তৈরি না করে।
এটি একটি অন্তর্নিহিত জনপ্রিয়তা প্রতিযোগিতা, সুতরাং সর্বাধিক ভোটের সহ এন্ট্রি জয়ী। ভোটগুলি বাগটি আড়াল করার ক্ষেত্রে দক্ষতার জন্য পুরষ্কার দেওয়া হয় - যত কম স্পষ্টত এটি তত ভাল।
আপনার প্রোগ্রামটি পরীক্ষা করে দেখার জন্য এখানে কয়েকটি নমুনা গ্রাফ রয়েছে।
ইনপুট:
12 a,2,c;a,2,e;b,5,c;b,4,d;b,11,e;d,7,n;e,4,n;
একটি চাক্ষুষ প্রতিনিধিত্ব (এই ভিজ্যুয়াল উপস্থাপনাটি কেবল স্বচ্ছতার জন্য এবং চ্যালেঞ্জের অংশ হিসাবে গঠিত হয় না):
একটি সম্ভাব্য আউটপুট:
n,d,b,e,a
ইনপুট:
10 a,8,b;a,12,d;b,1,n;d,11,n;a,1,n;
এখানে গ্রাফের একটি ভিজ্যুয়াল চিত্র রয়েছে:
একটি সম্ভাব্য আউটপুট:
n,d,a