সংক্ষেপিত স্পার্স সারি (সিএসআর, সিআরএস বা ইয়েল ফর্ম্যাট) ব্যবহার করে একটি বিচ্ছিন্ন ম্যাট্রিক্স সঙ্কুচিত করুন ।
এগুলি হ'ল সংক্ষেপে একই ধরণের (নতুন ইয়েল উপেক্ষা করুন)।
ইনপুট কোনও 2 ডি ডেটা কাঠামো (তালিকার তালিকা ইত্যাদি) হতে পারে: যেমন
[[0 0 0 0],
[5 8 0 0],
[0 0 3 0],
[0 6 0 0]]
এবং আউটপুট তিনটি 1d ডাটা স্ট্রাকচার (তালিকা ইত্যাদি), হওয়া উচিত যে আউটপুট বোঝাতে A
, IA
এবং JA
উদাহরণস্বরূপ,
[5, 8, 3, 6]
[0, 0, 2, 3, 4]
[0, 1, 2, 1,]
প্রক্রিয়াটি উইকিপিডিয়া দ্বারা বর্ণিত:
অ্যারে A দৈর্ঘ্যের এনএনজেড এবং এম এর সমস্ত ননজারো এন্ট্রিগুলি বাম থেকে ডানদিকের উপর থেকে নীচে ("সারি-প্রধান") ক্রমে ধারণ করে।
অ্যারে আইএ দৈর্ঘ্য মি + 1 এর হয় এটি এই পুনরাবৃত্ত সংজ্ঞা দ্বারা সংজ্ঞায়িত করা হয়:
আইএ [0] = 0 আইএ [i] = আইএ [i - 1] + (মূল ম্যাট্রিক্সের (i - 1) -র সারিতে ননজারো উপাদানগুলির সংখ্যা)
সুতরাং, আইএর প্রথম এম উপাদানগুলি সূচকগুলি এম এর প্রতিটি সারিতে প্রথম নোনজারো উপাদানগুলির মধ্যে এ এ সংরক্ষণ করে এবং শেষ উপাদান আইএ [এম] এনএনজেড সংরক্ষণ করে, এ এর উপাদানগুলির সংখ্যা, যা হিসাবেও ভাবা যেতে পারে ম্যাট্রিক্সের শেষের বাইরে খানিক সারিটির প্রথম উপাদানের A তে সূচক মূল ম্যাট্রিক্সের আই-তম সারির মানগুলি A [IA [i]] থেকে A [IA [i +] পর্যন্ত পড়ে 1] - 1] (উভয় প্রান্তে অন্তর্ভুক্ত), অর্থাত্ একটি সারির শুরু থেকে পরবর্তী সূচনার ঠিক আগের পরবর্তী শুরু। [5]
তৃতীয় অ্যারে, জেএ, এ এর প্রতিটি উপাদানের এম তে কলাম সূচক ধারণ করে এবং পাশাপাশি এনএনজেডের দৈর্ঘ্যও রয়েছে।
যদি আপনার ভাষা প্রকৃত ডেটা স্ট্রাকচার সমর্থন করে না, ইনপুট এবং আউটপুট পাঠ্য হতে পারে।
পরীক্ষার মামলা
ইনপুট 1:
[[0 0 0 0],
[5 8 0 0],
[0 0 3 0],
[0 6 0 0]]
আউটপুট 1:
[ 5, 8, 3, 6 ]
[ 0, 0, 2, 3, 4 ]
[ 0, 1, 2, 1, ]
ইনপুট 2
[[10 20 0 0 0 0],
[0 30 0 40 0 0],
[0 0 50 60 70 0],
[0 0 0 0 0 80]]
আউটপুট 2:
[ 10 20 30 40 50 60 70 80 ]
[ 0 2 4 7 8 ]
[ 0 1 1 3 2 3 4 5 ]
ইনপুট 3:
[[0 0 0],
[0 0 0],
[0 0 0]]
আউটপুট 3:
[ ]
[ 0 0 0 0 ]
[ ]
ইনপুট 4:
[[1 1 1],
[1 1 1],
[1 1 1]]
আউটপুট 4:
[ 1 1 1 1 1 1 1 1 1 ]
[ 0 3 6 9 ]
[ 0 1 2 0 1 2 0 1 2 ]
ইনপুট 5:
[[0 0 0 0],
[5 -9 0 0],
[0 0 0.3 0],
[0 -400 0 0]]
আউটপুট 5:
[ 5, -9, 0.3, -400 ]
[ 0, 0, 2, 3, 4 ]
[ 0, 1, 2, 1, ]
ধরে নিন ইনপুটগুলিতে কোনও আসল সংখ্যা থাকতে পারে, আপনার গাণিতিক চিহ্ন বা ঘনিষ্ঠভাবে উপস্থাপনা বিবেচনা করার দরকার নেই (উদাহরণস্বরূপ 5,000 কখনই 5e3 হিসাবে প্রবেশ করা হবে না)। আপনি হ্যান্ডেল করার প্রয়োজন হবে না inf
, -inf
, NaN
বা অন্য কোন 'সিউডো-সংখ্যার'। আপনি সংখ্যার আলাদা উপস্থাপনা আউটপুট করতে পারেন ( আপনি যদি এটি পছন্দ করেন তবে 5,000 5000 আউটপুট হতে পারে)।
স্কোরিং:
এটি একটি কোড-গল্ফ , সবচেয়ে কম বাইট জেতা।
লিডারবোর্ড
নিয়মিত লিডারবোর্ড এবং ভাষার দ্বারা বিজয়ীদের একটি সংক্ষিপ্ত বিবরণ উভয়ই তৈরি করতে এখানে একটি স্ট্যাক স্নিপেট।
আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেম্পলেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:
# Language Name, N bytes
N
আপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:
# Ruby, <s>104</s> <s>101</s> 96 bytes
যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:
# Perl, 43 + 2 (-p flag) = 45 bytes
আপনি ভাষাটির নামটিকে একটি লিঙ্কও বানাতে পারেন যা লিডারবোর্ড স্নিপেটে প্রদর্শিত হবে:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
IA[0] = 0
সম্পূর্ণ অপ্রয়োজনীয় না ? এটি কেবল সংজ্ঞায়িত করা দরকার IA[i] = IA[i − 1]...
, তবুও আমরা সহজভাবে বলতে পারি যে i-1 < 0
0 ব্যবহার করতে গেলে এটি IA [0] সর্বদা 0 এর সমান হয়, এজন্য এটি সংকোচিত করা যায় (হ্যাঁ, আমি বুঝতে পারি যে এটি আলগোরিদিমের সমালোচনা, এই চ্যালেঞ্জ না)।