পটভূমি
অ্যাডা এমন একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ যা একেবারে স্বচ্ছতার জন্য পরিচিত নয়।
তবে, এর অ্যারে আক্ষরিক বাক্য গঠন তাত্ত্বিকভাবে মোটামুটি সংশ্লেষ অ্যারে স্পেসিফিকেশনগুলির জন্য অনুমতি দিতে পারে। অ্যারে আক্ষরিক সিনট্যাক্সের একটি সহজ EBNF বর্ণনা এখানে রয়েছে ( বোতলোক্যাপস.ডে পাসযোগ্য :
array ::= positional_array | named_array
positional_array ::= expression ',' expression (',' expression)*
| expression (',' expression)* ',' 'others' '=>' expression
named_array ::= component_association (',' component_association)*
component_association ::= discrete_choice_list '=>' expression
discrete_choice_list ::= discrete_choice ('|' discrete_choice)*
discrete_choice ::= expression ('..' expression)? | 'others'
সরলতার জন্য আমরা নিজেদেরকে 1-মাত্রিক পূর্ণসংখ্যার মধ্যে সীমাবদ্ধ করব। এর অর্থ হ'ল আমরা কেবলমাত্র প্রকাশের মানগুলির জন্য পূর্ণসংখ্যা ব্যবহার করব। সম্ভবত ভবিষ্যতের চ্যালেঞ্জের মধ্যে আমরা আরও উন্নত কিছু চেষ্টা করতে পারি (যেমন ভেরিয়েবল এবং বহুমাত্রিক অ্যারে ঘোষণা করার মতো)। আপনাকে পূর্ণসংখ্যার আক্ষরিক গল্ফ দিতে হবে না ।
এখানে স্পষ্টতার জন্য অ্যাডা অ্যারে আক্ষরিক এবং পাইথন-এস্কু সমতুল্য উপস্থাপনের কয়েকটি উদাহরণ রয়েছে:
(1, 2, 3) = [1, 2, 3]
(1, others => 2) = [1, 2, 2, ..., 2]
(others => 1) = [1, 1, ..., 1]
(1 => 1, 2 => 3) = [1, 3]
(1|2 => 1, 3 => 2) = [1, 1, 2]
(1 => 1, 3 => 2, others => 3) = [1, 3, 2, 3, 3, ..., 3]
চ্যালেঞ্জ
এই চ্যালেঞ্জের লক্ষ্যটি প্রদত্ত ইনপুট অ্যারের জন্য স্বল্পতম বাইট-কাউন্ট অ্যাডা অ্যারে আক্ষরিক আউটপুট দেওয়া। নোট করুন যে অ্যাডা অ্যারেগুলি যা যা সূচকের পছন্দসই থেকে শুরু করতে পারে, তাই আপনি প্রতিটি সূচক যথাক্রমে লম্বা হওয়া সূচনা সূচকটি চান তা চয়ন করতে পারেন। এই উদাহরণে আমি 1 এ শুরু করা বেছে নিয়েছি, যা আদার পক্ষে মূর্তিমান, তবে আপনি অন্য কোনও পূর্ণসংখ্যার সাথে শুরু করতে বেছে নিতে পারেন।
ইনপুট
আপনার ইনপুটটিতে যে কোনও আকারে সুবিধাজনক হিসাবে পূর্ণসংখ্যার একটি তালিকা থাকবে।
আউটপুট
আপনার আউটপুটটি সংক্ষিপ্ত বৈধ অ্যাডা অ্যারে আক্ষরিক প্রতিনিধিত্বকারী পাঠ্যের একটি স্ট্রিং হবে যা ইনপুট পূর্ণসংখ্যার তালিকার প্রতিনিধিত্ব করে। আপনি এই অ্যারেটিতে যে কোনও প্রারম্ভিক সূচকটি চান তা ব্যবহার করতে পারেন, তবে আপনার পছন্দ (যা তা যাই হোক না কেন) অবশ্যই আপনার উত্তরে নির্দিষ্ট করা উচিত (প্রারম্ভিক সূচকটিও গতিশীল হতে পারে)।
উদাহরণস্বরূপ, পূর্ণসংখ্যাগুলি স্বাক্ষরিত দশমিক সংখ্যা হিসাবে প্রতিনিধিত্ব করা হয়। এই চ্যালেঞ্জটি পূর্ণসংখ্যার মানগুলিকে গল্ফ করে না।
উদাহরণ
এখানে কিছু উদাহরন:
Simple: [1, 2, 3] -> (1,2,3)
Range: [1, 1, 1, 1, 1, 1, 1,] -> (1..7=>1)
Others: [1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1] -> (6=>2,others=>1)
Multiple Ranges: [1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1] -> (6..10|16..20=>2,others=>1)
Tiny Ranges: [1,1,2,2,1,1,1,1,1] -> (3|4=>2,others=>1)
Far Range: [[1]*5, [2]*100, [3]*5] -> (1..5=>1,6..105=>2,others=>3)
Alternation: [1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2] -> (1|3|5|7|9|11|13|15|17=>1,others=>2)
Big Number: [1234567890,1,1234567890] -> (2=>1,1|3=>1234567890)
Big-ish Number: [1234567,1,1234567] -> (1234567,1,1234567)
Solo: [-1] -> (1=>-1)
Huge Input: [[0],[1]*1000000000] -> (0,others=>1)
Positional Others: [1, 2, 3, 3, 3, 3, 3, 3] -> (1,2,others=>3)
Range and Choice, no Others: [1,1,1,12,12,3,3,3,3,3,3,3,3,3,3,4] -> (1..3=>1,4|5=>12,6..15=>3,16=>4)
সর্বনিম্ন প্রয়োজনীয়তা
কমপক্ষে 100 নম্বর এবং দৈর্ঘ্যে কমপক্ষে 256 সংখ্যার ইনপুট সমর্থন করুন Support
এই জাতীয় সমস্ত ইনপুটগুলির জন্য সঠিক ফলাফল উত্পন্ন করুন
- শেষে 'অন্য' লাগানো অন্তর্ভুক্ত
- একক আইটেম অ্যারে জন্য একটি সূচক স্থাপন অন্তর্ভুক্ত
উপরের প্রতিটি ইনপুটগুলির জন্য এক মিনিটের মধ্যে অবসান করুন (পছন্দসই টিআইওতে)।
বাইটের মধ্যে সংক্ষিপ্ত সমাধান!
রেফারেন্স বাস্তবায়ন
এই প্রয়োগটি ইনপুটটিকে তার অ্যারে হিসাবে ব্যবহার করে প্রতিটি অক্ষর একটি সংখ্যা হিসাবে। বড় মূল্যের জন্য বড় বড় অক্ষরগুলি বিশেষ ধ্রুবক। প্রোগ্রাম আর্গুমেন্টটি ব্যবহারের জন্য 'সূচনা সূচনা'।
টিআইও লিঙ্কের "কোড" বিভাগটি সমস্যার সঠিক সমাধান, যখন "শিরোনাম" এবং "পাদচরণ" পরীক্ষার কাঠামো বাস্তবায়ন করে।
106..110=>3,others=>2
দীর্ঘতর হবে) সর্বশেষ ক্ষেত্রে একটি সূচক থাকা দরকার, কারণ ব্যাকরণটি একক উপাদান positional_array ::= expression ',' expression (',' expression)*
(1|3=>1234567,2=>1)
এটি অন্য বৈধ আউটপুট [1234567,1,1234567]
?
(-1)
?