結果
| 問題 |
No.33 アメーバがたくさん
|
| コンテスト | |
| ユーザー |
nanophoto12
|
| 提出日時 | 2014-11-02 05:51:17 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,714 bytes |
| コンパイル時間 | 872 ms |
| コンパイル使用メモリ | 112,472 KB |
| 実行使用メモリ | 26,644 KB |
| 最終ジャッジ日時 | 2024-09-24 09:57:30 |
| 合計ジャッジ時間 | 1,690 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 10 WA * 1 |
コンパイルメッセージ
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.Generic;
class Program
{
public static void Main(string[] args)
{
var firstline = Console.ReadLine().Split(' ');
var n = long.Parse(firstline[0]);
var d = long.Parse(firstline[1]);
var t = long.Parse(firstline[2]);
var secondline = Console.ReadLine().Split(' ');
var minMaxDictionary = new Dictionary<long, List<Tuple<long, long>>>();
for (long i = 0; i < n; i++)
{
var position = long.Parse(secondline[i]);
var key = (d + position)%d;
if (minMaxDictionary.ContainsKey(key))
{
minMaxDictionary[key].Add(new Tuple<long, long>(position - d * t, position + d * t));
}
else
{
minMaxDictionary.Add(key, new List<Tuple<long, long>> { new Tuple<long, long>(position - d * t, position + d * t) }); ;
}
}
long count = 0;
foreach (var element in minMaxDictionary)
{
var minMaxs = element.Value;
minMaxs.Sort((tuple, tuple1)=>tuple.Item1.CompareTo(tuple1.Item1));
long min = long.MaxValue;
long max = long.MinValue;
foreach (var minMax in minMaxs)
{
count += (minMax.Item2 - minMax.Item1) / d + 1;
if (minMax.Item1 <= max)
{
count -= (max - minMax.Item1) / d + 1;
}
min = Math.Min(min, minMax.Item1);
max = Math.Max(max, minMax.Item2);
}
}
Console.WriteLine(count);
}
}
nanophoto12