結果
| 問題 |
No.820 Power of Two
|
| コンテスト | |
| ユーザー |
sekiya9311
|
| 提出日時 | 2019-10-19 16:35:50 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
AC
|
| 実行時間 | 32 ms / 2,000 ms |
| コード長 | 5,924 bytes |
| コンパイル時間 | 979 ms |
| コンパイル使用メモリ | 117,144 KB |
| 実行使用メモリ | 27,260 KB |
| 最終ジャッジ日時 | 2024-06-27 06:58:37 |
| 合計ジャッジ時間 | 1,871 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 10 |
コンパイルメッセージ
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();
}
}
}
#endregion
class 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();
#endif
Solve();
}
public void Dispose()
{
sc?.Dispose();
wr?.Dispose();
}
#endregion
void Solve()
{
var N = sc.NextInt();
var K = sc.NextInt();
if (N < K) wr.WriteLine(0);
else
{
wr.WriteLine(1 << (N - K));
}
}
/// <summary>
/// TODO: リアクティブ問題か否かを指定してね♪
/// </summary>
private const bool _isReactive = false;
}
}
sekiya9311