結果
問題 | No.561 東京と京都 |
ユーザー | vain0 |
提出日時 | 2017-08-25 22:48:10 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 29 ms / 2,000 ms |
コード長 | 4,547 bytes |
コンパイル時間 | 941 ms |
コンパイル使用メモリ | 112,128 KB |
実行使用メモリ | 18,816 KB |
最終ジャッジ日時 | 2024-10-15 16:32:49 |
合計ジャッジ時間 | 2,098 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 23 ms
18,688 KB |
testcase_01 | AC | 23 ms
18,560 KB |
testcase_02 | AC | 23 ms
18,816 KB |
testcase_03 | AC | 23 ms
18,688 KB |
testcase_04 | AC | 23 ms
18,560 KB |
testcase_05 | AC | 23 ms
18,432 KB |
testcase_06 | AC | 23 ms
18,688 KB |
testcase_07 | AC | 23 ms
18,688 KB |
testcase_08 | AC | 23 ms
18,688 KB |
testcase_09 | AC | 23 ms
18,560 KB |
testcase_10 | AC | 26 ms
18,688 KB |
testcase_11 | AC | 28 ms
18,560 KB |
testcase_12 | AC | 24 ms
18,688 KB |
testcase_13 | AC | 23 ms
18,816 KB |
testcase_14 | AC | 22 ms
18,688 KB |
testcase_15 | AC | 22 ms
18,816 KB |
testcase_16 | AC | 23 ms
18,432 KB |
testcase_17 | AC | 29 ms
18,432 KB |
testcase_18 | AC | 27 ms
18,432 KB |
testcase_19 | AC | 26 ms
18,816 KB |
testcase_20 | AC | 23 ms
18,688 KB |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; public sealed partial class Program { public void EntryPoint() { var a = scanner; var n = a.N(); var d = a.L(); var tasks = Enumerable.Range(0, n).Select(i => new { t = a.L(), k = a.L() }).ToArray(); var tokyo = 0L; var kyoto = -d; foreach (var task in tasks) { var t = Math.Max(tokyo + task.t, kyoto + task.t - d); var k = Math.Max(tokyo + task.k - d, kyoto + task.k); tokyo = t; kyoto = k; } WriteLine(Math.Max(tokyo, kyoto)); } } #region Custom Library public static class TemplateExtension { public static X[] MakeArray<X>(this int count, Func<int, X> func) { var xs = new X[count]; for (var i = 0; i < count; i++) { xs[i] = func(i); } return xs; } public static int[] Range(this int count, int start = 0) { return count.MakeArray(i => i + start); } public static string Intercalate<X>(this IEnumerable<X> @this, string separator) { return string.Join(separator, @this); } public static void ForEach<X>(this IEnumerable<X> @this, Action<X, int> action) { var list = @this as IReadOnlyList<X>; if (list != null) { var count = list.Count; for (var i = 0; i < count; i++) { action(list[i], i); } } else { var i = 0; foreach (var x in @this) { action(x, i); i++; } } } } public sealed class Scanner { readonly TextReader reader; readonly StringBuilder sb = new StringBuilder(); /// <summary> /// Reads next word separated by spaces. /// </summary> public string Word() { sb.Clear(); while (true) { var r = reader.Read(); if (r == '\r') { if (reader.Peek() == '\n') reader.Read(); break; } else if (r == -1 || r == ' ' || r == '\n') { break; } else { sb.Append((char)r); } } return sb.ToString(); } /// <summary> /// Reads next word as <see cref="int"/>. /// </summary> public int N() { return int.Parse(Word()); } /// <summary> /// Reads next word as <see cref="long"/>. /// </summary> public long L() { return long.Parse(Word()); } /// <summary> /// Reads next word as <see cref="double"/>. /// </summary> public double F() { return double.Parse(Word()); } public int[] Ns(int count) { return count.MakeArray(_ => N()); } public long[] Ls(int count) { return count.MakeArray(_ => L()); } public double[] Fs(int count) { return count.MakeArray(_ => F()); } /// <summary> /// Reads next line and splits it by spaces. /// </summary> public X[] Words<X>(Func<string, X> func) { return reader.ReadLine().Split(' ').Select(func).ToArray(); } public Scanner(TextReader reader) { this.reader = reader; } } public partial class Program { readonly TextReader input; readonly TextWriter output; readonly Scanner scanner; void WriteLine(int value) { output.WriteLine(value); } void WriteLine(long value) { output.WriteLine(value); } void WriteLine(double value) { output.WriteLine(value); } void WriteLine(char value) { output.WriteLine(value); } void WriteLine(string value) { output.WriteLine(value); } public Program(TextReader input, TextWriter output) { this.input = input; this.output = output; scanner = new Scanner(input); } public static void Main(string[] args) { #if DEBUG using (var writer = new VainZero.IO.DebugTextWriter(Console.Out)) #else var writer = Console.Out; #endif { new Program(Console.In, writer).EntryPoint(); } } } #endregion