সময় ভ্রমণকারী


18

ঘড়িতে জিততে সঠিক সময় উত্পন্ন করতে সংক্ষিপ্ততম কোড।

আপনি একটি পাকা সময় ভ্রমণকারী এবং আপনার জার্নির সময় অনেক গ্রহে থামার জন্য পরিচিত। প্রতিটি গ্রহ আলাদা হারে আবর্তিত হয় এবং এ কারণে একটি দিনের দৈর্ঘ্য আমাদের সাধারণ 24 ঘন্টা দিনের চেয়ে আলাদা different ফলস্বরূপ, গ্রহগুলি বিভিন্ন সংখ্যক ঘন্টা সহ ঘড়ি ব্যবহার করে। X ঘন্টা সহ একটি ঘড়ির ঘন্টাগুলি আমাদের (1, 2, 3, ..., x ) এর মতো ঘড়ির কাঁটার সংখ্যাটি ঘোরের সাথে এবং x শীর্ষে রয়েছে arranged

অতিরিক্তভাবে, প্রতিটি গ্রহের এক ঘন্টার মধ্যে বিভিন্ন পরিমাণের মিনিট এবং এক মিনিটে বিভিন্ন সেকেন্ড থাকে has আপনাকে একটি প্রারম্ভিক সময় এবং বেশিরভাগ বিস্তৃত সেকেন্ড দেওয়া হবে যা থেকে আপনাকে শেষের সময়টি নির্ধারণ করতে হবে।

যুক্তি হিসাবে বা স্ট্যান্ডার্ড ইনপুট হিসাবে পাস করা ফাইল থেকে ইনপুট নেওয়া যেতে পারে। ইনপুটটির প্রথম লাইনটি আপনাকে প্রক্রিয়াকরণের জন্য প্রয়োজনীয় এমন কতগুলি ঘড়ি রয়েছে। এর পরে, প্রতিটি ঘড়ির মধ্যে তিনটি লাইন ইনপুট থাকে যা নিম্নলিখিত বিন্যাসে পূর্ণসংখ্যা থাকে:

x y z
h m s
t

প্রতিটি বর্ণের অর্থ নীচে রয়েছে।

x = এক ঘন্টার মধ্যে ঘন্টা (2 <= x <= 99)
y = এক ঘন্টাে মিনিটের সংখ্যা (2 <= y <= 100)
z = এক মিনিটে সেকেন্ডের সংখ্যা (2 <= z <= 100)
h = শুরুর সময়ের ঘন্টা (1 <= h <= x)
মি = শুরু সময়ের মিনিট (0 <= m <y)
s = শুরুর সময়ের দ্বিতীয় (0 <= s) <z)
t = সেকেন্ডের সংখ্যা যে কেটে গেছে

শুরুর সময় থেকে টি সেকেন্ড পেরিয়ে যাওয়ার পরে প্রতিটি ঘড়ির জন্য আউটপুট অবশ্যই শেষ সময় হতে হবে । আপনার আউটপুট অবশ্যই স্ট্যান্ডার্ড ক্লক টাইম (এইচএইচ: এমএম: এসএস) হিসাবে ফর্ম্যাট করা উচিত। সমস্ত সংখ্যা দুটি-সংখ্যার কিনা তা নিশ্চিত করার জন্য নম্বরগুলি প্রয়োজনীয় হলে প্যাড করা উচিত।

পরীক্ষার মামলা


ইনপুট

2
5 20 10
1 10 5
2633
6 25 5
6 0 3
290

আউটপুট

04:13:08
02:08:03

ইনপুট

1
14 17 11
12 16 10
1530

আউটপুট

07:03:00

ইনপুট

2
8 40 25
3 1 15
10620
14 15 20
1 14 0
-580

আউটপুট

05:26:10
14:00:00

8
আমি ভাবছি সব গ্রহ যদি ইংরেজদের বাসে থাকে?
আআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআচ

4
@e বিজনেস বেটার তাদের পুরোপুরি চায়ের মতো নয় এমন একটি দুর্দান্ত কাপ দিন।
মতিন উলহাক

আমি মনে করি আমি উদাহরণগুলি / ইনপুট ফর্ম্যাটটি বুঝতে পারি না। x একটি দিনে কত ঘন্টা হয় - সেই গ্রহের সময়কালে ঘন্টা, বা মানব / পৃথিবীর ঘন্টা? এবং এইচ, আরম্ভের সময়টি কি সেই গ্রহগুলির সময়, বা আবার, মানব / পৃথিবীর সময়? কারণ: যদি ইনপুট 1, উদাহরণ 2 তে, গ্রহটির কেবল 6 ঘন্টা থাকে - শুরুর সময়টি 6 টা কেমন হওয়া উচিত? এটি একটি অবৈধ সময় হবে।
ব্যবহারকারীর অজানা

আমি যদি সঠিকভাবে বুঝতে পারি তবে ঘন্টাগুলি 1 থেকে n এ চলে যায়। মিনিট এবং সেকেন্ড 0 থেকে এন -1 এ যায়। তবে মধ্যরাত n: 00: 00 বা 1:00:00 টা। সেখানেই আমি বিভ্রান্ত হয়ে পড়ি।
ক্যাপচার্যাগ

@ সিএমপি: শেষ পরীক্ষার কেসটি দেখায়, মধ্যরাতের সময় n: 00: 00।
কেভিন ব্রাউন

উত্তর:


8

গল্ফস্ক্রিপ্ট - 50 টি অক্ষর

~](;7/{{~+.4$/\4$%])\}3*3<)@\or\+{100+`(;}%':'*n}%

মানগুলি (এইচ / এম / এস) তাদের স্ট্যাকের সামনের দিকে নিয়ে গিয়ে সংগ্রহ করা হয় ( ])\)। 0 এ 'আন্ডারফ্লো' ঘন্টাটি হ্যান্ডেল করা হয় or। জিরো প্যাডিং সহ পরিচালনা করা হয় 100+`(;, যদিও আমি মনে করি 0`\+-2>একই দৈর্ঘ্য।


ওওহ, 100 টি জিনিস আমাকে পাগল করে তোলে। আমি আশা করি আমি এটি ভেবেছি (এটি আমাকে কেবল তিনটি চরিত্রই বাঁচাতে পারত, তবে আমার মস্তিষ্কের সময়কে আরও বাঁচাতে পারত))
জেসি মিলিকান

9

পাইথন, 142 টি অক্ষর

R=raw_input
for i in' '*input():x,y,z,h,m,s=map(int,(R()+i+R()).split());t=input()+h*y*z+m*z+s;print'%02d:%02d:%02d'%((t/y/z-1)%x+1,t/z%y,t%z)

যদি আমি ভুল না করে থাকি, যেহেতু আপনি ব্যবহার for i in ' '*input()আপনি আসলে ব্যবহার করতে পারে iপরিবর্তে ' 'মধ্যে R()+' '+R()দুটি অক্ষর সংরক্ষণ।
ড্যান বার্টন

সত্যিই, ধন্যবাদ।
কিথ র্যান্ডাল

আপনি exec"x,y,z,h,m,s=map(int,(R()+' '+R()).split());t=input()+h*y*z+m*z+s;print'%02d:%02d:%02d'%((t/y/z-1)%x+1,t/z%y,t%z);"*input()
এটির

t/y/z%x or xএকটি চরিত্র সংক্ষিপ্ত।
নবিব

5

গল্ফস্ক্রিপ্ট 62 60 অক্ষর

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

~](\7/\{(~+[]\{.5$/@@5$%\+@@+}3*;\;(@or\+{'0'\+-2>}%':'*n@}*

62 সংস্করণ:

~](\7/\{[]:a;(~{+.4$/\4$%a+:a;}3*;;;a(@or\+{'0'\+-2>}%':'*n@}*
1______a2____3_b4_5___6__7____8__9__10_____11_________12____13

আমি নিশ্চিত যে এটি আরও অনেক ভাল করা যায়, আমি আরও ভাল কিছু ভাবতে পারি না।

1: সমস্ত ইনপুটের একটি অ্যারে তৈরি করুন, প্রথম উপাদানটি বেছে নিন,
বাকীগুলিকে 7 টি ব্লকে ভাগ করুন a এ / 13: লুপটি চালানোর জন্য ইনপুট থেকে প্রথম সংখ্যাটি গ্রহণ করুন number সংখ্যাটি।
2: একটি খালি অ্যারে সংরক্ষণ করুন।
3: 7 টির একটি ব্লক বাছুন এবং এটি 7 টি পৃথক সংখ্যায় প্রসারিত করুন।
বি / ৮: প্রতিটি সেকেন্ড, মিনিট এবং ঘন্টার জন্য একবার 3 বার লুপ চালান।
4: প্রথম পুনরাবৃত্তির জন্য এক সাথে সর্বশেষ দুটি সংখ্যা যুক্ত করুন, যা সেকেন্ড এবং শিফট করার সময় হয়, নিম্নলিখিতটির জন্য এটি পূর্ববর্তী চক্র থেকে ওভারফ্লোতে কয়েক মিনিট এবং ঘন্টা হয়। ফলাফলটির দ্বিতীয় কপি তৈরি করুন।
5: অনুলিপি উত্পাদন সীমাবদ্ধ করে অনুলিপি ভাগ করুন এবং ফলাফলটিকে একটি জায়গায় ফিরিয়ে আনুন।
6: ফলাফলের একটি অংশ উত্পাদন করতে পূর্ববর্তী বিভাগের মডুলো গণনা করুন।
7: এই অংশটি অ্যারেতে যুক্ত করুন।
9: স্ট্যাক থেকে ঘন্টা ওভারফ্লো এবং দ্বিতীয় এবং মিনিটের সীমা সরিয়ে ফেলুন।
10: একটি এর ঘন্টা অংশ নিন, যদি এটি শূন্যকে ঘন্টার সীমার সাথে প্রতিস্থাপন করে তবে এটিকে আবার অ্যারেতে রাখুন।
11: একটিতে প্রতিটি উপাদানের জন্য সামনে '0' রাখুন, এভাবে স্ট্রিংয়ে রূপান্তর করুন এবং শেষ 2 টি অক্ষর বাদে সবকিছু ফেলে দিন।
12: ':' দ্বারা বিভক্ত একটি একক স্ট্রিতে অ্যারেটি সঙ্কুচিত করুন, একটি নতুন লাইন রাখুন এবং অবশিষ্ট কাজগুলি স্ট্যাকের সামনের দিকে স্থানান্তর করুন, এভাবে পরবর্তী পুনরাবৃত্তির জন্য প্রস্তুত করা হবে।


এবং 13 কি? ভাল ব্যাখ্যা! +1
FUZxxl

@ এফইউজেডএক্সএক্সএল: 13 এবং 8 টি ব্লক এ এবং বি এর শেষ চিহ্নিতকারী।
schnaader

5

জে (172/35) 137 99 107

এখন প্রদত্ত সমস্ত পরীক্ষার কেস পাস করে।

4(1!:2)~LF,~"1([,':',])/"2,"2":"0(10 10#:1 0 0+{.#:{.&{:+{.#.1 0 0-~1&{)"2&(,&}.$~,&3 3&{.&{.)".;._2(1!:1)3

172 পুরো জিনিস; 35 টি হ'ল আমি যে অক্ষরগুলি দেব তা যদি আমি সত্যিই খুব সুন্দর ছিলাম এবং নির্দেশিত আইওটি করতে অস্বীকার করলাম। (আমি এখনও এটি কিছুটা সংশোধন করেছি; ঘড়িগুলি এমন একটি ফাংশন যা জে এর মধ্যে ইন্টারেক্টিভভাবে ব্যবহৃত হতে পারে এমন একটি ফাইল নাম গ্রহণ করে)

আমি নিশ্চিত যে জে এটি দেখতে আরও বেশি সহজ এটি আশা করি।

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

সম্পাদনা 2: সেন্ট্রাল ফাংশনটির ইনপুটটি 3x3 ম্যাট্রিক্সে পরিবর্তিত হয়েছে, অনেকগুলি বেঁচে থাকা বন্ধনী, নাম বাদ দেওয়া হয়েছে

সম্পাদনা করুন 3: 0-টা বাজে

ব্যাখ্যা:

আমার জে এখনও দুর্দান্ত নয় এবং আইও সর্বদাই ব্যথা। সুতরাং এর বিট পাগল।

  • ক্রিয়াটি 1 0 0+{.#:{.&{:+{.#.1 0 0-~1&{তিন দ্বারা তিনটি ম্যাট্রিক্স নেয় (ইনপুট লাইনগুলি নিয়ে গঠিত, শেষ দুটি উপাদান আবর্জনা)
  • এইচ / এম / গুলি {দিয়ে অর্জিত হয়েছে { (মাথা), 1 & {(দ্বিতীয় উপাদান) সহ আসল সময় এবং {। & {সহ দ্বিতীয় গণনা: (লেজের মাথা)।
  • ক্রিয়াটি # ব্যবহার করে ঘড়ির সময়টিকে সেকেন্ডে রূপান্তর করতে। (ডকুমেন্টেশন দেখুন।)
  • এটি দ্বিতীয় গণনা যুক্ত করে এবং তারপরে 3 টির উপাদান উত্তর পেতে #: ব্যবহার করে ।
  • বেস পরিবর্তনের এক ঘন্টা আগে 1 টি বিয়োগ করে পরে 1 পিছনে যুক্ত করে 0 বাজে মামলা পরিচালনা করা হয়। (সাথে দুটি বিট 1 0 0)
  • বাকীটি হ'ল ইনপুট এবং আউটপুট, যা সত্যই নিবিড় (সর্বদা হিসাবে)।
  • ".;._2(1!:1)3 পূরণ না হওয়া পজিশনে 0 সেটের সাথে ইনপুটটির 3 'কলাম' ম্যাট্রিক্স পান।
  • ,&}.$~,&3 3&{.&{. ইনপুট থেকে প্রথম সারি কেটে দেয় এবং বাকী সারিগুলিকে Nx3x3 এ আকার দেয়।
  • "2মডিফাই কেন্দ্রীয় ক্রিয়া 3x3 মামলা নিতে।
  • 10 10&#:একটি Nx3x2 ম্যাট্রিক্স প্রদান করে প্রতিটি সংখ্যার জন্য 2 দশমিক সংখ্যা দেয়। (প্যাডিংয়ের জন্য 0s পাওয়া একটি ব্যথা ছিল ))
  • ,"2":"0 অঙ্কগুলি ASCII (Nx3x2x1) এ রূপান্তর করে এবং শেষ কলামটি ছড়িয়ে দিয়ে Nx3x2 কে আবার ASCII হিসাবে দেয়।
  • LF,~"1([,':',])/"2 সন্নিবেশ করা হয়: প্রতিটি উপাদান এবং তাদের (Nx7) সংযোজন করে এবং প্রতি জন্য একটি লাইন ফিড যোগ করে (এনএক্স 8)।
  • 4(1!:2)~ প্রতিটি সারি মুদ্রণ।

4

হাস্কেল, 159 টি অক্ষর

v(_:x:y:z:h:m:s:t:r)=(w%x+1)&":"$z%y&":"$1%z&"\n"$v$t:r where w=y*z;(%)=mod.div(t+h*w-w+m*z+s)
v _=""
d&c=tail.(shows(d+100)c++)
main=interact$v.map read.words

  • সম্পাদনা করুন (207 -> 200) কখনও কখনও divModএটি মূল্য হয় না!
  • সম্পাদনা করুন: (200 -> 178) মার্জিত foldrপদ্ধতির (যা কোনও সংখ্যক উপাদানগুলির সাথে টাইম সিস্টেমের জন্য কাজ করে!) ব্যবহার না করে আত্মত্যাগ করে
  • সম্পাদনা করুন: (178 -> 164) ইনলাইন করা f
  • সম্পাদনা করুন: (164 -> 158) অপ্রয়োজনীয় বন্ধনী অপসারণ করেছে
  • সম্পাদনা করুন: (158 -> 160) তিনটি সম্পাদনা আগে কিছুটা চালু করা ঠিক হয়েছিল: ঘন্টা এখন আবার সঠিক
  • সম্পাদনা করুন: (160 -> 159) এতে একটি কল বাদ দিয়েছে tail

ঘন্টা সমস্ত আউটপুট এক অফসেট হয়।
জোয় অ্যাডামস

@ জোয়ে: ভাল ধরা! সংশোধন করা হয়েছে।
এমটিএনভিউমার্ক

3

রুবি, 128 অক্ষর

অজগর থেকে নির্লজ্জভাবে অনুলিপিগুলি:

d=$<.read.split.map(&:to_i);d[0].times{|o|x,y,z,h,m,s,t=d[o*7+1,7];t+=z*(y*h+m)+s;puts ["%02d"]*3*':'%[(t/y/z-1)%x+1,t/z%y,t%z]}

3

হাস্কেল - 219 প্রয়োজনীয় অক্ষর

import Text.Printf
(#)=div
(%)=mod
n?d=(n-1)%d+1
e a n=mapM(\_->a)[1..n]
main=readLn>>=(e$do{
 a<-e getLine 3;
 let[x,y,z,h,m,s,t]=map read.words=<<a;
    w=y*z;e=h*w+m*z+s+t::Int
  in printf"%02d:%02d:%02d\n"(e#w?x)(e#z%y)(e%z)})

2

পিএইচপি (241 অক্ষর)

আর্গুমেন্ট হিসাবে পাস করা কোনও ফাইল থেকে ইনপুট নেয়।

foreach(array_chunk(array_slice(file($argv[1]),1),3)as$v){list($x,$y,$z)=split(" ",$v[0]);list($h,$m,$s)=split(" ",$v[1]);$e=($v[2]+$s+$z*($m+$h*$y))%($x*$y*$z);$s=$e%$z;$e/=$z;$m=$e%$y;$h=($e/$y)%$x;printf("%02d:%02d:%02d\n",$h?:$x,$m,$s);}

এবং অবরুদ্ধ:

$input = array_chunk(array_slice(file($argv[1]),1),3);
foreach($input as $v){
    list($x,$y,$z)=split(" ",$v[0]);
    list($h,$m,$s)=split(" ",$v[1]);
    $t = $v[2];
    $seconds_in_day = $x * $y * $z;
    $total_elapsed = $t + $s + $m*$z + $h*$y*$z;
    $elapsed = $total_elapsed % $seconds_in_day;

    $sec = $elapsed % $z;
    $elapsed /= $z;

    $min = $elapsed % $y;
    $elapsed /= $y;

    $hours = $elapsed % $x;
    if ($hours == 0) $hours = $x;

    printf("%02d:%02d:%02d\n",$hours,$min,$sec);
}

এবং কেবল লক্ষ করুন, সিগিল ছাড়াই (ডলারের চিহ্ন), এটি 205 টি অক্ষরে আসে।


2

জাভা, 486 371 টি অক্ষর

অবরুদ্ধ সংস্করণ: http://pastebin.com/6LiTdGyi

এটি প্রদত্ত উদাহরণগুলির মতো একই আউটপুট দেয়।

তবে আমি সেই আচরণের সাথে একমত নই: একটি ঘড়ির দিনে যত ঘন্টা থাকে তার সংখ্যা থাকে না: তার অর্ধেক থাকে।

এর অর্থ আপনি যদি 12:50:12 এ 3600 সেকেন্ড যোগ করেন তবে এটি 01:50:12 মুদ্রণ করা উচিত, 13:50:12 নয় (আমাদের স্ট্যান্ডার্ড 24/60/60 সিস্টেমে)।

আমি আমার কোডটিতে এটি পরিচালনা করেছি তবে উদাহরণগুলির সাথে মেলে এটির জন্য আমার সমাধানে এটি মন্তব্য করেছে। অবশ্যই যদি আপনি এটি বিবেচনা করেন, তবে আপনি কিছু এএম / পিএম চিহ্নিতকারী যুক্ত না করলে ইনপুট সময়গুলি অস্পষ্ট হিসাবে বিবেচনা করা যেতে পারে।

তবে যে কোনও ক্ষেত্রে, ধাঁধাটির একটি অসঙ্গতি রয়েছে: যদি 00 ঘন্টা x দ্বারা প্রতিস্থাপন করা হয় তবে ঘন্টা> (x / 2) দ্বারা ঘন্টা দ্বারা প্রতিস্থাপন করা উচিত - (x / 2)।

সম্পাদনা করুন: গল্ফযুক্ত সংস্করণ:

import java.io.File;import java.util.Scanner;public class U{static int i(Scanner s){return
s.nextInt();}public static void main(String[]g)throws Exception{Scanner s=new Scanner(new File(g[0
]));int n=i(s);while(0!=n--){int J=i(s),K=i(s),L=i(s),P=(i(s)*K*L+i(s)*L+i(s)+i(s))%(J*K*L);System.
out.println(String.format("%02d:%02d:%02d",(0==P/L/K%J)?J:P/L/K%J,P/L%K,P%L));}}}

হাই, এখানে [কোড-গল্ফ] প্রশ্নের মোট অক্ষরের সংক্ষিপ্ত উত্তর প্রয়োজন। এর অর্থ একটি গল্ফ এন্ট্রি হওয়া উচিত, কমপক্ষে: ১. packageঘোষণাগুলি ব্যবহার করা উচিত নয় ; 2. ব্যবহার না final; ৩. একক-অক্ষর ভেরিয়েবলের নাম এবং শ্রেণীর নাম ব্যবহার করুন; ৪. সংক্ষিপ্ততম কোডটি সম্ভব করে তুলতে সাধারণত ক্লিভরেস্ট উপায়গুলি ব্যবহার করুন।
ক্রিস জেস্টার-ইয়ং

আপনার কোডটি অপঠনযোগ্য কিনা তা বিবেচনাধীন নয়; সুতরাং, আপনার "অপঠনযোগ্য" সংস্করণ কোড গল্ফ প্রতিযোগিতার জন্য কার্যকর নয় যদি তা অন্যথায় সংক্ষিপ্ত না হয়। সত্যি কথা বলতে, জাভাটি গল্ফের প্রতিযোগিতায় প্রবেশের জন্য একটি দুর্বল ভাষা, কারণ বেশিরভাগ ভাষার তুলনায় জাভাটি ভার্চুয়াল। :-(
ক্রিস জেস্টার-ইয়ং

অদূর ভবিষ্যতে, আমি একটি ক্লিনআপ অনুশীলন করব যেখানে নন-গল্ফযুক্ত এন্ট্রিগুলি [কোড-গল্ফ] প্রশ্ন থেকে সরানো হবে। সুতরাং, যদি আপনি একটি গল্ফ সংস্করণ করতে পারেন (আমার প্রথম মন্তব্য দেখুন), দয়া করে করুন; অন্যথায়, আপনার উত্তরটি পরবর্তী সাফায় মুছে ফেলা হবে।
ক্রিস জেস্টার-ইয়ং

ওহে. সব জন্য দুঃখিত। আমি বিভ্রান্ত হয়ে পড়েছিলাম ... গল্ফিংয়ের অর্থ কী তা বুঝতে পেরেছি। আমি লিঙ্গ হিসাবে কেবল বর্ণহীন সংস্করণ রেখেছি। আশা করি ইনপুট এবং প্রত্যাশিত ফলাফল সম্পর্কে আমার সন্দেহের কারণে বিশেষত এটি ঠিক আছে is আমি তখন আরও ভাল গল্ফ সংস্করণ রেখেছি। ডান জাভা সেরা নয় তবে আমি মনে করি এই গল্ফযুক্ত সংস্করণটি এখানে রাখার জন্য আমি যথেষ্ট ভাল করেছি। আবার দুঃখিত.
tisek

@ টিসেক: আপনার নতুন সংস্করণের জন্য ধন্যবাদ কোডটি আরও সংক্ষিপ্ত করার জন্য এখানে একটি পরামর্শ দেওয়া হয়েছে: পরিবর্তে int[]c={i(s),i(s),i(s),i(s),i(s),i(s),i(s)}, আপনি ব্যবহার করতে পারেন int a=i(s),b=i(s),c=i(s),d=i(s),e=i(s),f=i(s),g=i(s)। হ্যাঁ, আপনি এখানে 11 টি অক্ষর যুক্ত করেছেন, তবে আপনি প্রতিবার ব্যবহারের সময় তিনটি অক্ষর সংরক্ষণ করেন c[x], যার অর্থ এই জাতীয় 4 টি ইভেন্টের পরে এটি নিজের জন্য প্রদান করা হবে। আমি 13 টি দৃষ্টান্ত গণনা করেছি যার অর্থ আপনি মোট 28 টি অক্ষর সংরক্ষণ করেন!
ক্রিস জেস্টার-ইয়ং

2

বাশ - 189 টি অক্ষর:

read n
for((i=0;i<n;i++));do
read x y z
read h m s
read t
R=$(((s+m*z+h*y*z+t)%(x*y*z)))
H=$((R/y/z))
R=$((R-H*y*z))
M=$((R/z))
printf"%02d:%02d:%02d\n"$((((H-1)%x+x)%x+1))$M$((R-M*z))
done

আমি যেমন মনে করি দ্বিতীয় মোডটি নেতিবাচক বিগত সেকেন্ডের জন্য রয়েছে।

যে মুদ্রণ লাইন কাজ করে না। printfএর তর্ক এবং এর মধ্যে এবং সেই আর্গুমেন্টগুলির মধ্যে ফাঁকা স্থান প্রয়োজন ...
মার্ক রিড

1

পিএইচপি, 229 228 টি অক্ষর

<?$v=file($argv[1]);while(++$i<$v[0]*3){list($x,$y,$z)=split(" ",$v[$i++]);list($h,$m,$s)=split(" ",$v[$i++]);$s=($e=($v[$i]+$s+$m*$z+$h*$y*$z)%($x*$y*$z))%$z;$m=($e/=$z)%$y;printf("%02d:%02d:%02d\n",($e/$y)%$x?$e%$x:$x,$m,$s);}

আর্গুমেন্ট হিসাবে ফাইলটি অবশ্যই স্ক্রিপ্টে পাস করতে হবে

Ungolfed:

<?php

$v = file($argv[1]); // Automatically break the file into an array by line

while(++$i < $v[0]*3){ // Loop for every three lines
  list($x, $y, $z) = explode(" ", $v[$i++]); // Break apart the first line by space
  list($h, $m, $s) = explode(" ", $v[$i++]); // Break apart the second line

  /*
    Add the starting time to the total number of seconds that have passed
    Divide by total amount of seconds in a day
  */

  $time = ($v[$i] + $s + $m * $z + $h * $y * $z) % ($x * $y * $z);

  $seconds = $time % $z;  // Get the number of seconds
  $minutes = ($time /= $z) % $y; // Remove the end amount of seconds, then get the minutes

  /*
    Remove the end amount of hours
    Determine how many hours there would be
    If the number is zero, then output the max hours
    If the number is not zero, output the amount of hours left
  */

  $hours = ($time / $y) % $x? $e % $x : $x;

  // Display the time in the correct format
  printf("%02d:%02d:%02d\n", $hours, $minutes, $seconds);
}

পরিবর্তণের:

229 -> 228: ঘন্টা সময় বিভাগ সঞ্চালনের সময় বাকি সময় সেট করার প্রয়োজন নেই


1

বাশ, ১৩৯ টি অক্ষর

read n
while((n--));do
read x y z;read h m s;read t
((t+=z*(y*h+m)+s,a=(t/y/z-1)%x+1,b=t/z%y,c=t%z))
printf %02d:%02d:%02d\\n $a $b $c
done

1

স্কালা 184 টি অক্ষর:

object C extends App{val r=new java.util.Scanner(System.in)
def n=r.nextInt
for(j<-1 to n;h=n;m=n;s=n;x=n;y=n;z=n;t=n;d=(x*m+y)*s+z+t){printf("%02d:%02d:%02d\n",d/(m*s)%h,d/s%m,d%s)}
}

নিয়মের বিরোধিতায় আমি দাবি করি যে এটির জন্য

14 15 20
1 14 0
-580

আউটপুট হওয়া উচিত নয়

14:00:00

কিন্তু

00:00:00

এবং এটিই আমার কোড উত্পাদন করে। দয়া করে আমাকে এমন একটি ঘড়ি দেখান যা পৃথিবীতে 24:00:00 এর পরিবর্তে 00:00:00 প্রদর্শিত হয় - সম্ভবত 24:59:59। অথবা আপনি কি অনুক্রমটি আশা করেন:

23:59:59
24:00:00
00:00:01

পরিবর্তে

23:59:59
00:00:00
00:00:01

পৃথিবীতে, আপনি 24:00:01 দেখতে পাবেন না, তবে আপনি মাঝে মধ্যে 'দিন এন 24:00:00' দেখতে পাবেন 'দিন এন + 1 এ 00:00:00' এর প্রতিশব্দ হিসাবে ব্যবহৃত হয়। এটি একই সময় তবে অন্যরকম ফোকাস - 'মধ্যরাতের আজ রাতে' বনাম 'কাল সকালে মধ্যরাত'।
মার্ক রিড

1

পাইথন 2 , 137 বাইট

lambda T:["%02d:%02d:%02d"%((s/z/y%x,x)[s%x<1],s/z%y,s%z)for x,y,z,h,m,s,t in[T[i:i+7]for i in range(1,len(T),7)]for s in[s+m*z+h*y*z+t]]

এটি অনলাইন চেষ্টা করুন!

অন্যান্য পাইথন উত্তরের চেয়ে সামান্য খাটো , তবে সেখানে যাওয়ার জন্য আলাদা রুট লাগে।

অব্যক্ত ব্যাখ্যা:

def f(T):
    # ignore first list element, split list into even chunks of length 7
    for i in range(1, len(T), 7):
        # get variables for sublist
        for x, y, z, h, m, s, t in [T[i:i + 7]]:
            # get total time in seconds, inside a list so that we can use list comprehension
            for s in [s + m*z + h*y*z + t]:
                # split total time into parts
                # seconds: convert seconds to minute, take remainder
                sec = s % z
                # minutes: convert seconds to minutes (discard remainder), convert minutes to hours, take remainder
                min = s / z % y
                # hours: convert seconds to minutes (discard remainder),
                #        convert minutes to hours (discard remainder),
                #        convert hours to days, take remainder
                # if seconds are evenly divisible by total hours, use number of hours in day instead ("midnight")
                hr = (s / z / y % x, x)[s % x < 1]

                print "%02d:%02d:%02d"%(hr, min, sec)

0

হাস্কেল ( 815) 624 টি অক্ষরহীন, ফাঁকা লাইন বাদ দেওয়া হয়েছে)

খনি প্রিন্ট করে 00:00:00 এর পরিবর্তে 12:00:00 বা অনুরূপ "মধ্যরাত" -র মতো সময়গুলির জন্য। সম্পাদনা: এটি পরিবর্তন হয়েছে।

main = readFile "in.txt" >> mapM_ print . times . map (map read . words) . tail . lines

times [] = []
times ([x,y,z]:[h,m,s]:[t]:xs) = Time x y z h m s +++ t : times xs

data Time = Time {x,y,z,h,m,s :: Int}
hr t | h t == 0 = x t | otherwise = h t

instance Show Time where show t = pad2 (hr t) ++ ':':pad2 (m t) ++ ':':pad2 (s t)

pad2 x | x < 10 = '0':show x | otherwise = show x

t +++ ss | ss < 0  = t +++ (ss + x'*y'*z') | otherwise = Time x' y' z' h' m' s'
  where (x',y',z') = (x t, y t, z t)
        (ms, s') = (s t + ss) `quotRem` z'
        (hs, m') = (m t + ms) `quotRem` y'
        (_,  h') = (h t + hs) `quotRem` x'

আরও কিছু জিনিস বিমূর্ত করতে পারে, কিন্তু ডাব্লু / ই। এটি সম্পূর্ণরূপে ইনপুট ফাইলের প্রথম লাইন উপেক্ষা করে এবং ভুলভাবে ফর্ম্যাট করা ফাইলগুলির জন্য আপনাকে চিৎকার করে।


দ্রষ্টব্য, ঘন্টা, মিনিট এবং সেকেন্ডের জন্য দু'বারের বেশি অঙ্কের জন্য এই সমাধানটি চালিত করা সহজ হবে।
ড্যান বার্টন

"X ঘন্টা সহ একটি ঘড়ির সময়গুলি আমাদের (1, 2, 3, ..., x) এর মতো সাজানো হয়", তাই 00:00:00 বৈধ নয়। যদিও এটির জন্য সামঞ্জস্য করা কঠিন হওয়া উচিত নয়।
কেভিন ব্রাউন

@ বাস 5098 স্থির হয়েছে এবং কিছুটা ছোট করা হয়েছে। যদিও এটিকে অপঠনযোগ্য আকারে ফেলতে আমার হৃদয় নেই।
ড্যান বার্টন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.