結果
問題 | No.736 約比 |
ユーザー |
![]() |
提出日時 | 2019-10-27 01:03:04 |
言語 | C#(csc) (csc 3.9.0) |
結果 |
AC
|
実行時間 | 38 ms / 2,000 ms |
コード長 | 6,652 bytes |
コンパイル時間 | 2,395 ms |
コンパイル使用メモリ | 112,640 KB |
実行使用メモリ | 19,456 KB |
最終ジャッジ日時 | 2024-09-14 20:58:52 |
合計ジャッジ時間 | 5,235 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge6 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 65 |
コンパイルメッセージ
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;using System.IO;using System.Linq;using System.Numerics;using System.Text;namespace ProgrammingContestTemplateByDotNetCore{#region "Input and Output Classes"class Scanner : IDisposable{private readonly Queue<string> _buffer;private readonly char[] _sep;private readonly TextReader _reader;public Scanner(TextReader reader = null, char[] sep = null){_buffer = new Queue<string>();_sep = sep ?? new[] { ' ' };_reader = reader ?? Console.In;}public Scanner(string path, char[] sep = null): this(new StreamReader(path), sep) { }private void CheckBuffer(){if (_buffer.Any() || _reader.Peek() == -1)return;string str = string.Empty;for (;string.IsNullOrWhiteSpace(str);str = _reader.ReadLine()) { }var values = str.Split(_sep).Where(s => !string.IsNullOrWhiteSpace(s));foreach (var item in values){_buffer.Enqueue(item);}}public string Next(){CheckBuffer();return _buffer.Dequeue();}public string[] GetStringArray(int count)=> Enumerable.Range(0, count).Select(e => Next()).ToArray();public int NextInt() => int.Parse(Next());public int[] GetIntArray(int count)=> Enumerable.Range(0, count).Select(e => NextInt()).ToArray();public long NextLong() => long.Parse(Next());public long[] GetLongArray(int count)=> Enumerable.Range(0, count).Select(e => NextLong()).ToArray();public double NextDouble() => double.Parse(Next());public double[] GetDoubleArray(int count)=> Enumerable.Range(0, count).Select(e => NextDouble()).ToArray();public decimal NextDecimal() => decimal.Parse(Next());public decimal[] GetDecimalArray(int count)=> Enumerable.Range(0, count).Select(e => NextDecimal()).ToArray();public BigInteger NextBigInt() => BigInteger.Parse(Next());public BigInteger[] GetBigIntArray(int count)=> Enumerable.Range(0, count).Select(e => NextBigInt()).ToArray();public bool IsEnd{get{CheckBuffer();return !_buffer.Any();}}public void Dispose(){if (!_reader.Equals(Console.In))_reader.Dispose();}}class Writer : IDisposable{private readonly TextWriter _writer;private readonly StringBuilder _cache;private readonly bool _isReactive;public Writer(TextWriter writer = null, bool isReactive = false){_writer = writer ?? Console.Out;_isReactive = isReactive;if (!_isReactive)_cache = new StringBuilder();}public Writer(string path): this(new StreamWriter(path)) { }public Writer(bool isReactive): this(null, isReactive) { }public void Write(object value){if (_isReactive){_writer.Write(value);_writer.Flush();}else{_cache.Append(value);}}public void WriteFormat(string format, params object[] values){var value = string.Format(format, values);Write(value);}public void WriteLine(object value = null){Write($"{value}{Environment.NewLine}");}public void WriteLine(string format, params object[] values){WriteFormat($"{format}{Environment.NewLine}", values);}public void Dispose(){if (!_isReactive){_writer.Write(_cache);_writer.Flush();}if (!_writer.Equals(Console.Out)){_writer.Dispose();}}}public static class Extensions{public static void Set<TKey, TValue>(this IDictionary<TKey, TValue> source,TKey key, TValue value){if (source.ContainsKey(key))source[key] = value;elsesource.Add(key, value);}}#endregionclass MainClass : IDisposable{#region "Template"/// <summary> 入力を受け取る </summary>private readonly Scanner sc;/// <summary> 出力を行う </summary>private readonly Writer wr;private const string _inputFile = "input.txt";private const string _outFile = "output.txt";static void Main(string[] args){using (new MainClass()) { }}public MainClass(){wr = new Writer(_isReactive);// TODO: ファイルに出力したい場合はこっち → wr = new Writer(_outFile);#if DEBUG// 手元では、ファイルから入力を受け取るsc = new Scanner(_inputFile);#else// 提出時、標準入力から受け取るsc = new Scanner();#endifSolve();}public void Dispose(){sc?.Dispose();wr?.Dispose();}#endregionpublic static long Gcd(long a, long b){if (a < b){var tmp = a;a = b;b = tmp;}long ret = 1;while (b > 0){ret = b;b = a % b;a = ret;}return ret;}void Solve(){var N = sc.NextInt();var a = sc.GetLongArray(N);var gcd = a.Aggregate(Gcd);var ans = string.Join(":", a.Select(x => x / gcd));wr.WriteLine(ans);}/// <summary>/// TODO: リアクティブ問題か否かを指定してね♪/// </summary>private const bool _isReactive = false;}}