結果
| 問題 | No.154 市バス |
| コンテスト | |
| ユーザー |
mori_chibi
|
| 提出日時 | 2017-08-22 16:08:10 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 3,072 bytes |
| コンパイル時間 | 935 ms |
| コンパイル使用メモリ | 109,056 KB |
| 実行使用メモリ | 24,064 KB |
| 最終ジャッジ日時 | 2024-10-13 09:07:59 |
| 合計ジャッジ時間 | 4,847 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | RE * 1 |
| other | RE * 8 |
コンパイルメッセージ
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;
namespace Citybus
{
class Program
{
static void Main(string[] args)
{
bool possible;
char[] charary;
Tube TestTube = new Tube();
int lines = int.Parse(Console.ReadLine());
List<string> line = new List<string>();
Predicate<byte> deleteall = DeleteAll;
Console.SetIn(new StreamReader(Console.OpenStandardInput(),
System.Text.Encoding.UTF8,//Console.InputEncoding,
false,
1024));
for (int i = 0; i < lines; i++)
{
line.Add(Console.ReadLine());
}
for (int i = 0; i < lines; i++)
{
possible = true;
charary = line[i].ToCharArray();
for (int j = charary.Length - 1; j > -1 && possible; j--)
{
switch (charary[j])
{
case 'R': TestTube.AddRed(); break;
case 'G': possible = TestTube.AddGreen(); break;
case 'W': possible = TestTube.AddWhite(); break;
}
}
if( possible && TestTube.Inspect() )
{
Console.WriteLine("possible");
}
else
{
Console.WriteLine("impossible");
}
TestTube.RemoveAll(deleteall);
}
}
private static bool DeleteAll(byte b)
{
return true;
}
private class Tube : List<byte>
{
const byte color_r = 1;
const byte color_g = 2;
const byte color_w = 4;
const byte color_rg = 3;
const byte color_rgw = 7;
public void AddRed()
{
this.Add(color_r);
}
public bool AddGreen()
{
for(int i = 0; i < this.Count; i++)
{
if (this[i] == color_r)
{
this[i] += color_g;
return true;
}
};
return false;
}
public bool AddWhite()
{
for (int i = 0; i < this.Count; i++)
{
if (this[i] == color_rg)
{
this[i] += color_w;
return true;
}
}
return true;
}
public bool Inspect()
{
for (int i = 0; i < this.Count; i++)
{
if (this[i] != color_rgw)
{
return false;
}
}
return true;
}
}
}
}
mori_chibi