বাস্তব জীবনের দৃশ্যের দ্বারা অনুপ্রাণিত হয়ে, যার উত্তর আমি এখানে চেয়েছি: /superuser/ মনে হচ্ছে,-ইন-একটি-সেট-টু-ডেট বিশেষত্বহীন
টাইমস্প্যানগুলির একটি অ্যারে দেওয়া (বা স্টার্ট-ডেট-শেষের যুগল), মোট পরিসীমাতে সমস্ত দিন ধরে প্রতিদিন কত টাইমস্প্যানকে কভার করে তার একটি সংখ্যা নির্ধারণ করুন।
উদাহরণ স্বরূপ:
# Start End
1 2001-01-01 2001-01-01
2 2001-01-01 2001-01-03
3 2001-01-01 2001-01-02
4 2001-01-03 2001-01-03
5 2001-01-05 2001-01-05
উপরের ডেটা দেওয়া, ফলাফল নিম্নলিখিত হিসাবে হওয়া উচিত:
2001-01-01: 3 (Records 1,2,3)
2001-01-02: 2 (Records 2,3)
2001-01-03: 2 (Records 2,4)
2001-01-04: 0
2001-01-05: 1 (Record 5)
আপনাকে কেবল প্রতিটি দিনের জন্য গণনাগুলি আউটপুট করতে হবে (ক্রমানুসারে, সর্বাধিক সর্বাধিক সজ্জিত); কোন রেকর্ড তারা উপস্থিত।
আপনি ধরে নিতে পারেন যে প্রতিটি টাইমস্প্যানে কেবল তারিখগুলি থাকে, সময়গুলি নয়; এবং তাই পুরো দিন সর্বদা প্রতিনিধিত্ব করা হয়।
ইনপুট / আউটপুট
ইনপুট এমন কোনও ফর্ম্যাট হতে পারে যা টাইমস্প্যানগুলির একটি সেট উপস্থাপন করে - তাই হয় বেশ কয়েক বারের সেট, বা (বিল্টিন) অবজেক্টের সংকলন যা শুরু- এবং শেষের তারিখগুলি ধারণ করে। পিপিসিজি চ্যালেঞ্জগুলির পক্ষে স্বাভাবিক হিসাবে তারিখের সময়গুলি 1901 এবং 2099 এর মধ্যে সীমাবদ্ধ।
আপনি ধরে নিতে পারেন ইনপুটটি পূর্ব-সাজানো হয়েছে তবে আপনি পছন্দ করেন (আপনার উত্তরে নির্দিষ্ট করুন)। ইনপুট তারিখগুলি অন্তর্ভুক্ত থাকে (সুতরাং পরিসীমাটিতে শুরুর শেষ এবং শেষের তারিখগুলি অন্তর্ভুক্ত)।
আপনি ধরেও নিতে পারেন যে কোনও প্রদত্ত পরিসরের দুটি তারিখের মধ্যে প্রথমটি দ্বিতীয়টির সমান বা তার সমান হবে (যেমন আপনার নেতিবাচক তারিখের সীমা থাকবে না)।
আউটপুট হল শুরুর তারিখ অনুসারে বাছাই করার সময় ইনপুটটিতে সর্বাপেক্ষা প্রাচীন থেকে শুরু করে প্রতিটি দিনের জন্য গণনা সমেত একটি অ্যারে।
সুতরাং, উপরের উদাহরণের জন্য আউটপুট হবে {3,2,2,0,1}
এটি সম্ভব যে কিছু দিন কোনও সময় ব্যাপ্তিতে অন্তর্ভুক্ত থাকে না, সেই ক্ষেত্রে 0সেই তারিখের আউটপুট।
বিজয়ী মানদণ্ড
এটি কোড-গল্ফ, তাই সর্বনিম্ন বাইটস জয়। সাধারণ বর্জন প্রযোজ্য
সিউডো-অ্যালগরিদমের উদাহরণ
For each time range in input
If start is older than current oldest, update current oldest
If end is newer than current newest, update current newest
End For
For each day in range oldest..newest
For each time range
If timerange contains day
add 1 to count for day
End For
Output count array
একই ফল পেতে অন্যান্য অ্যালগরিদমগুলি ভাল।
0একটি অভিধানে থাকা উচিত? এটা শুধুমাত্র থেকে পুনরুক্তি করতে ব্যবহারকারী জোর মনে হচ্ছে min(input)থেকে max(input), যা চ্যালেঞ্জ (কম্পিউটিং timespans) কোর কিছু যোগ করার জন্য মনে হয় না।