কিসের জন্য নির্ধারিত?
এই প্রতিদ্বন্দ্বিতায় আপনাকে দুই ধরনের দেওয়া হবে, Aএবং Bএবং নির্ধারণ যদি Aকরতে হস্তান্তরযোগ্য নয় B, Bহস্তান্তরযোগ্য হয় A, অথবা তন্ন তন্ন।
টাইপ সিস্টেম
(আমি যে tকোনও ধরণের প্রতিনিধিত্ব করতে ব্যবহার করব )
বেসিক প্রকার
বেসিক প্রকারগুলি একটি একক মূলধন বর্ণ দ্বারা প্রতিনিধিত্ব করা হয়, যেমন X। তারা মূলত ক্লাস হয়।
Xথেকে হস্তান্তরযোগ্য নয়YযদিYপারেন হিসাবে একই, বা একটি পিতা বা মাতা ক্লাস হয়X।
ছেদ প্রকারের
ছেদ করার ধরণগুলি প্রতিনিধিত্ব করে intersect<X, Y>এবং <এর (উদাঃ intersect<X, Y, Z, D, E>) এর মধ্যে যে কোনও ধরণের সংখ্যক প্রকার থাকতে পারে ।
tintersect<X1, X2... Xn>যদিtসকলের জন্য নির্ধারিত হয় তবে তা নির্ধারিত হয়X।intersect<X1, X2... Xn>যদি কোনটি অর্পণযোগ্য হয়tতবেXতা নির্ধারিত হয়t।
ইউনিয়ন প্রকার
ইউনিয়ন ধরণের দ্বারা প্রতিনিধিত্ব করা হয় union<X, Y>এবং <এর (উদাঃ union<X, Y, Z, D, E>) এর মধ্যে যে কোনও ধরণের সংখ্যা থাকতে পারে ।
tযদি কোনটি অর্পণযোগ্য হয়union<X1, X2... Xn>তবেtতা নির্ধারিত হয়X।union<X1, X2... Xn>tযদি সবাইকে অর্পণযোগ্য হয় তবেXতা নির্ধারিত হয়t।
ইনপুট
আপনি ইনপুট হিসাবে পাবেন:
- শ্রেণি শ্রেণিবিন্যাস। ক্লাস শ্রেণিবদ্ধের জন্য আপনি ইনপুট পদ্ধতিটি চয়ন করতে পারেন। আপনি কোনও গাছের প্রতিনিধিত্ব, বা প্রতিটি ধরণের এর পিতামাতার একটি তালিকা সহ বা শ্রেণীর শ্রেণিবিন্যাসের সঠিকভাবে প্রতিনিধিত্ব করে এমন অন্য কোনও বিষয় ইনপুট করতে পারেন।
- দুই ধরণের (ইনপুটটি নমনীয়, যতক্ষণ স্বরলিখনের সাথে সামঞ্জস্য থাকে তবে আপনি চাইলে এই ধরণেরগুলি পেতে পারেন)।
আউটপুট
আপনি তিনটি সামঞ্জস্যপূর্ণ এবং স্বতন্ত্র মান আউটপুট এক হবে তাদের কল X, Yএবং, Z। দুই ধরনের দেওয়া Aএবং Bআউটপুট, Xযদি Aথেকে হস্তান্তরযোগ্য নয় B, আউটপুট Yযদি Bকরতে হস্তান্তরযোগ্য নয় Aএবং আউটপুট Zঅন্যথায় (যদি Aথেকে হস্তান্তরযোগ্য নয় Bএবং Bকরতে হস্তান্তরযোগ্য নয় A, আপনি may আউটপুট X, Yউভয়, অথবা একটি চতুর্থ মান)।
পরীক্ষার কেস
বিন্যাস:
# of types
[type, parents...]
[type, parents...]
Type a
Type b
2
[A,B]
[B]
A
B
--
A is assignable to B
3
[A,B,C]
[B,C]
[C]
intersect<A,C>
A
--
A is assignable to intersect<A,C>
3
[A,B,C]
[B,C]
[C]
union<A,C>
A
--
A is assignable to union<A,C>
3
[A,B,C]
[B,C]
[C]
intersect<B,C>
A
--
A is assignable to intersect<B,C>
3
[A,B,C]
[X,Y,Z]
[T,U,V]
intersect<union<A,T,X>,intersect<A,B>,Y>
intersect<T,C,X>
--
intersect<T,C,X> and intersect<union<A,T,X>,intersect<A,B>,Y> are not assignable to each other
1
[A]
A
A
--
A is assignable to A
3
[A,B,C]
[X,Y,Z]
[T,U,V]
intersect<A,intersect<A,B>,Y>
intersect<T,C,X>
--
intersect<T,C,X> and intersect<A,intersect<A,B>,Y> are not assignable to each other
2
[A]
[B]
A
B
--
B and A are not assignable to each other
3
[A,B,C]
[X,Y,Z]
[T,U,V]
intersect<union<A,X>,intersect<A,B>,Y>
intersect<T,C,X>
--
intersect<T,C,X> and intersect<union<A,X>,intersect<A,B>,Y> are not assignable to each other
আপনি পরীক্ষার জন্য এটি ব্যবহার করতে পারেন এমন একটি ভার্চুয়াল জাভা সমাধানের একটি লিঙ্ক রয়েছে (এটি পরীক্ষার ক্ষেত্রে একইভাবে ইনপুট নেয়)
এটি কোড-গল্ফ, তাই প্রতিটি ভাষার ন্যূনতম বাইটগুলি সেই ভাষার জন্য জয়ী হয়!