সময় সারণিতে তালিকাভুক্ত করুন


25

ভূমিকা

যখন কেউ আপনার পছন্দ মতো অ্যালবাম ইউটিউবে আপলোড করে তবে আপনি কি এটি ঘৃণা করবেন না, তবে বিবরণটিতে কেবল একটি ট্র্যাক তালিকা রয়েছে ? এটার মত:

1. Everything in Its Right Place - 4:11
2. Kid A - 4:44
3. The National Anthem - 5:50
4. How to Disappear Completely - 5:55
5. Treefingers - 3:42
6. Optimistic - 5:16
7. In Limbo - 3:31
8. Idioteque - 5:09
9. Morning Bell - 4:29
10. Motion Picture Soundtrack - 6:59

আপনি যখন জানবেন না যে মর্নিং বেলটি কখন শুরু হয় আপনি যদি না নিজের মাথার মধ্যে কয়েকগুণ যোগ করেন! সাধারণত, কিছু ভাল আত্মা এসে (ভয়ঙ্কর) মন্তব্য বিভাগে একটি কার্যকর টাইম টেবিল রেখে আসবে , যা দেখতে এরকম কিছু দেখায়:

(0:00:00) Everything in Its Right Place
(0:04:11) Kid A
(0:08:55) The National Anthem
(0:14:45) How to Disappear Completely
(0:20:40) Treefingers
(0:24:22) Optimistic
(0:29:38) In Limbo
(0:33:09) Idioteque
(0:38:18) Morning Bell
(0:42:47) Motion Picture Soundtrack

সবিস্তার বিবরণী

  • আপনার কাজ হ'ল এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা ইনপুট হিসাবে একটি ট্র্যাক তালিকা এবং আউটপুট হিসাবে একটি সময় সারণী নেয়।

    • আপনি STDIN, বা একটি আর্গুমেন্ট স্ট্রিং, বা লাইনের একটি যুক্তির তালিকা থেকে ইনপুট পড়তে বেছে নিতে পারেন। একইভাবে, আপনি STDOUT এ আউটপুট প্রিন্ট করতে বা স্ট্রিং ফিরে আসতে বা লাইনের একটি তালিকা ফেরত দিতে পারেন। এগুলিতে ব্যর্থ হয়ে, আপনার ভাষার জন্য যা কিছু বোঝায় তা করুন।
  • আপনি ধরে নিতে পারেন প্রতিটি ইনপুট লাইনের ফর্ম্যাট রয়েছে (\d+)\. [A-Za-z0-9 ]{1,100} - (\d+):(\d\d)। রেজেক্স-প্রতিবন্ধীদের জন্য এটির মূলত অর্থ হ'ল আপনি প্রতিটি লাইনটি ভাল-ফর্ম্যাটেড (উপরের মতো) এবং গানের শিরোনামগুলিতে কেবলমাত্র বর্ণানুক্রমিক ASCII অক্ষর এবং স্পেস নিয়ে গঠিত এবং এটি 100 বাইটের বেশি দীর্ঘ নয়।

  • একটি ট্র্যাকের দৈর্ঘ্য সর্বদা কমপক্ষে 0:01এবং এর চেয়ে বেশি হয় না 59:59
  • ট্র্যাক নম্বর ক্রম বাড়ছে, শুরু থেকে 1এবং গণনা আর বেশি নয় 99
  • অ্যালবামের মোট দৈর্ঘ্য আর বেশি নয় 9:59:59

এটি , তাই সংক্ষিপ্ততম কোড (বাইটে) জয়ী।

পরীক্ষা ক্ষেত্রে

আপনার প্রোগ্রামটি উপস্থাপনায় উপস্থাপন করা রূপান্তরটি সঠিকভাবে সম্পাদন করা উচিত (রেডিওহেডের কিড এ )। আপনার প্রোগ্রামটিতেও কাজ করা উচিত দীর্ঘ স্ট্রিং সহ এখানে একটি আরও বড় টেস্ট কেস (সুফজান স্টিভেনস ' ইলিনয় 1 ) রয়েছে:

1. Concerning the UFO Sighting Near Highland Illinois - 2:08
2. The Black Hawk War - 2:14
3. Come On Feel the Illinoise - 6:45
4. John Wayne Gacy Jr - 3:19
5. Jacksonville - 5:24
6. A Short Reprise for Mary Todd Who Went Insane but for Very Good Reasons - 0:47
7. Decatur or Round of Applause for Your Stepmother - 3:03
8. One Last Whoo Hoo for the Pullman - 0:06
9. Chicago - 6:04
10. Casimir Pulaski Day - 5:53
11. To the Workers of the Rock River Valley Region - 1:40
12. The Man of Metropolis Steals Our Hearts - 6:17
13. Prairie Fire That Wanders About - 2:11
14. A Conjunction of Drones Simulating the Way - 0:19
15. The Predatory Wasp of the Palisades Is Out to Get Us - 5:23
16. They Are Night Zombies They Are Neighbors They Have Come Back from the Dead Ahhhh - 5:09
17. Lets Hear That String Part Again Because I Dont Think They Heard It All the Way Out in Bushnell - 0:40
18. In This Temple as in the Hearts of Man for Whom He Saved the Earth - 0:35
19. The Seers Tower - 3:53
20. The Tallest Man the Broadest Shoulders - 7:02
21. Riffs and Variations on a Single Note - 0:46
22. Out of Egypt into the Great Laugh of Mankind and I Shake the Dirt from My Sandals as I Run - 4:21

সঠিক ফলাফল:

(0:00:00) Concerning the UFO Sighting Near Highland Illinois
(0:02:08) The Black Hawk War
(0:04:22) Come On Feel the Illinoise
(0:11:07) John Wayne Gacy Jr
(0:14:26) Jacksonville
(0:19:50) A Short Reprise for Mary Todd Who Went Insane but for Very Good Reasons
(0:20:37) Decatur or Round of Applause for Your Stepmother
(0:23:40) One Last Whoo Hoo for the Pullman
(0:23:46) Chicago
(0:29:50) Casimir Pulaski Day
(0:35:43) To the Workers of the Rock River Valley Region
(0:37:23) The Man of Metropolis Steals Our Hearts
(0:43:40) Prairie Fire That Wanders About
(0:45:51) A Conjunction of Drones Simulating the Way
(0:46:10) The Predatory Wasp of the Palisades Is Out to Get Us
(0:51:33) They Are Night Zombies They Are Neighbors They Have Come Back from the Dead Ahhhh
(0:56:42) Lets Hear That String Part Again Because I Dont Think They Heard It All the Way Out in Bushnell
(0:57:22) In This Temple as in the Hearts of Man for Whom He Saved the Earth
(0:57:57) The Seers Tower
(1:01:50) The Tallest Man the Broadest Shoulders
(1:08:52) Riffs and Variations on a Single Note
(1:09:38) Out of Egypt into the Great Laugh of Mankind and I Shake the Dirt from My Sandals as I Run

লিডারবোর্ড

আপনার স্কোর বোর্ডে উপস্থিত হওয়ার জন্য, এটি এই ফর্ম্যাটে হওয়া উচিত:

# Language, Bytes

১. সুফজানের কাছে ক্ষমাপ্রার্থী, যার আশ্চর্যজনক ট্র্যাকের নামগুলি এই সমস্যাটির মধ্যে সীমাবদ্ধ কেবলমাত্র সহজ বিন্যাসে ফিট করার জন্য আমাকে কিছুটা ম্যাঙ্গাল করতে হয়েছিল।


আউটপুটটিতে পিছনের স্থানগুলি থাকতে পারে?
মার্টিন ইন্ডার

1
রেডিওহেড এবং সুফজান স্টিভেনস? মেহ :
লুইস মেন্ডো

নাঃ; প্রতিটি লাইনের বিন্যাস হ'ল (h:mm:ss) Track Nameতত্ক্ষণাত একটি নতুন লাইন।
লিন

@ লুইসমেডো আপনার উত্তরে আপনার উচ্চতর সংগীতের স্বাদগুলি নির্দ্বিধায় দেখায় ...?
লিন

Hahaha। এটি উত্তর দেওয়ার জন্য একটি ভাল অতিরিক্ত অনুপ্রেরণা। বিটিডাব্লু আমি চ্যালেঞ্জটি পছন্দ করেছি এবং আমি এটিকে অগ্রাহ্য করেছি
লুইস মেন্ডো

উত্তর:


12

সিজেম, 60 57 55 বাইট

2 বাইট সংরক্ষণের জন্য Sp3000 ধন্যবাদ।

qN/{T60bZ0e["(%d:%02d:%02d) "e%\S/1>)':/60bT+:T;W<S*N}/

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

qN/{      e# Read input and split into lines.
  T60b    e# Push T (initially zero, we use this to keep track of the total time in
          e# seconds), and convert it to base 60.
  Z0e[    e# Pad it with zeroes to 3 digits to get hours, minutes, seconds.
  "(%d:%02d:%02d) "e%
          e# Get the (h:mm:ss) part using a format string.
  \S/     e# Pull up the current line, split on spaces.
  1>      e# Discard the first segment, i.e. the track number.
  )':/    e# Pull off the last segment, i.e. the time, and split on colons.
  60b     e# Interpret the two parts as base-60 digits to get the amount of seconds
          e# for the track.
  T+:T;   e# Add this to T and discard it.
  W<      e# Discard the last segment of the remaining string (the hyphen).
  S*N     e# Join the song name back together with spaces and push a line feed.
}/


6

পার্ল, (93 টি চর -p) আরও 94 বাইট

s!\d+\. (.+) - (\d+:(\d+))!sprintf"(%d:%02d:%02d) $1",$n/3600,$n%3600/60,$n%60,$n+=$3+60*$2!e

চালানোর জন্য:

perl -pe 's!\d+\. (.+) - (\d+:(\d+))!sprintf"(%d:%02d:%02d) $1",$n/3600,$n%3600/60,$n%60,$n+=$3+60*$2!e' <<< '<input>'

5

সি ++, 212 209 202 189 বাইট

সি ++ কারণ .. কেন?

#include<iostream>
long d,t,u;main(){std::string a,b(8,0);while(getline(std::cin>>t>>a[0],a,'-')>>t>>b[0]>>u){strftime(&b[0],9,"%T",gmtime(&d));b[0]='(';std::cout<<b+")"+a+'\n';d+=t*60+u;}}

লাইভ: 212 209 202 189


5

পাইথন 2, 170 160 বাইট

কিছুক্ষণ হয়ে গেলাম যেহেতু আমি একটি গল্ফ করেছি, আশা করি এটি খুব খারাপ নয়: পি

t=0
for i in input().split('\n'):i=i.split(' - ');print'(%d:%02d:%02d)'%(t/3600,t%3600/60,t%60),i[0].split('. ')[1];k=i[-1].split(':');t+=int(k[0])*60+int(k[1])

ইনপুটটি চারপাশে উক্তি দ্বারা আবৃত হওয়া উচিত এবং নিউলাইনগুলি দ্বারা বিভক্ত হওয়া উচিত:

"1. Concerning the UFO Sighting Near Highland Illinois - 2:08\n2. The Black Hawk War - 2:14\n3. Come On Feel the Illinoise - 6:45\n4. John Wayne Gacy Jr - 3:19\n5. Jacksonville - 5:24\n6. A Short Reprise for Mary Todd Who Went Insane but for Very Good Reasons - 0:47\n7. Decatur or Round of Applause for Your Stepmother - 3:03\n8. One Last Whoo Hoo for the Pullman - 0:06\n9. Chicago - 6:04\n10. Casimir Pulaski Day - 5:53\n11. To the Workers of the Rock River Valley Region - 1:40\n12. The Man of Metropolis Steals Our Hearts - 6:17\n13. Prairie Fire That Wanders About - 2:11\n14. A Conjunction of Drones Simulating the Way - 0:19\n15. The Predatory Wasp of the Palisades Is Out to Get Us - 5:23\n16. They Are Night Zombies They Are Neighbors They Have Come Back from the Dead Ahhhh - 5:09\n17. Lets Hear That String Part Again Because I Dont Think They Heard It All the Way Out in Bushnell - 0:40\n18. In This Temple as in the Hearts of Man for Whom He Saved the Earth - 0:35\n19. The Seers Tower - 3:53\n20. The Tallest Man the Broadest Shoulders - 7:02\n21. Riffs and Variations on a Single Note  - 0:46\n22. Out of Egypt into the Great Laugh of Mankind and I Shake the Dirt from My Sandals as I Run - 4:21"

4
আমার মনে হয় আপনি কেবলমাত্র %dসময়ের ঘন্টার জন্য থাকতে পারেন (যদি আমি নিয়মগুলি সঠিকভাবে বুঝতে পারি!) -2!
ডম হেস্টিংস

সঠিক ফর্ম্যাটটি গ্রহণ inputকরতে 4 টি অক্ষর যোগ করুন ( থেকে raw_input); অন্যথায় আমি বিশ্বাস করি এটি অকার্যকর কারণ এটি ভিন্ন ফর্ম্যাটে লাইন ধরেছে।
আরকে

3

গেম, 151 টি অক্ষর

\B=@set{t;}
<D>. * - <D>\:<D>=(@div{$t;3600}:@fill-right{00;@div{@mod{$t;3600};60}}:@fill-right{00;@mod{$t;60}}) *@set{t;@add{@add{$t;$4};@mul{$3;60}}}

নমুনা রান:

bash-4.3$ gema '\B=@set{t;};<D>. * - <D>\:<D>=(@div{$t;3600}:@fill-right{00;@div{@mod{$t;3600};60}}:@fill-right{00;@mod{$t;60}}) *@set{t;@add{@add{$t;$4};@mul{$3;60}}}' tracklist.txt
(0:00:00) Concerning the UFO Sighting Near Highland Illinois
(0:02:08) The Black Hawk War
(0:04:22) Come On Feel the Illinoise
(0:11:07) John Wayne Gacy Jr
(0:14:26) Jacksonville
(0:19:50) A Short Reprise for Mary Todd Who Went Insane but for Very Good Reasons
(0:20:37) Decatur or Round of Applause for Your Stepmother
(0:23:40) One Last Whoo Hoo for the Pullman
(0:23:46) Chicago
(0:29:50) Casimir Pulaski Day

3

পাইথন 2, 207 206 বাইট

h=m=s=0
for i in raw_input().splitlines():
 print("(%d:%.2d:%.2d) "%(h,m,s),i.split('-')[0].split('. ')[1])
 t=i.split('-')[1].split(':')
 m+=int(t[0]);s+=int(t[1]);r=s//60;s-=r*60;m+=r;r=m//60;m-=r*60;h+=r

ব্যবহার

$ python test.py
'1. Concerning the UFO Sighting Near Highland Illinois - 2:08\n2. The Black Hawk War - 2:14\n3. Come On Feel the Illinoise - 6:45'
(0:00:00) Concerning the UFO Sighting Near Highland Illinois 
(0:02:08) The Black Hawk War 
(0:04:22) Come On Feel the Illinoise 

পাইথন 3 এর কোন সংস্করণ আপনি ব্যবহার করছেন? ভেবেছিলাম raw_inputকেবল পাইথন ২-তে রয়েছে
লিন

সংশোধন করা হয়েছে। আমি অনুমান করি যে আমি কেবল "3" টাইপ করতে অভ্যস্ত। @ মৌরিস
জ্যাচ গেটস

1

awk, 119 101 বাইট

{split($NF,t,":");$1=$(--NF)="";--NF;print"("substr(strftime("%H:%M:%S",s,1),2)")"$0;s+=t[1]*60+t[2]}

এই পথ চেয়ে বেশি আমি এটা হতে চেয়েছিলেন। সমস্যাটি হ'ল %Hঅনুরোধের মতো ঘন্টাগুলি বিন্যাস করে না, তাই আমাকে নিজেই ঘন্টাগুলি গণনা করা দরকার।

আচ্ছা, আমি বোকা। ফলাফলগুলি strftimeভুল ছিল কারণ আমার এটি ইউটিসি সময় ব্যবহার করার কথা বলা দরকার। যে 18 বাইট কাটা!

119-বাইট সংস্করণ

{split($NF,t,":");$1=$(--NF)="";--NF;print"("(h||0)":"strftime("%M:%S",s)")"$0;s=(r=s+t[1]*60+t[2])%3600;h=int(r/3600)}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.