Letöltés: bsza_varazslat.pas using System;
using System.IO;
namespace elemek
{
class Program
{
public static string[] Csiribá(string[] lista, string[] kombi, string[] zero) {
bool K = false;
int hossz = lista.Length;
string kombo = null;
foreach (string szabaly in kombi) {
int j = 0;
try{while (lista[j] != null) j ++;} catch (Exception ex){};
if (j > 1) {
int jj = 0;
try{while (lista[jj] != null) jj ++;}
catch (Exception ex){};
if
(lista[jj-1] + lista[jj-2] == szabaly.Substring(0, 2))
K = true;
if
(lista[jj-2] + lista[jj-1] == szabaly.Substring(0, 2))
K = true;
kombo = szabaly;
}
}
if (K && kombi.Length > 0 && lista[0] != null) {
int jj = 0;
try{while (lista[jj] != null) jj ++;}
catch (Exception ex){};
lista[jj-1] = null;
lista[jj-2] = Convert.ToString(kombo[2]);
} else {
foreach (string szabaly in zero) {
if ( StringMk(lista).Replace(Convert.ToString(szabaly[0]), "").Length < StringMk(lista).Length &&
StringMk(lista).Replace(Convert.ToString(szabaly[1]), "").Length < StringMk(lista).Length) {
for (int i = 0; i < hossz; i++) lista[i] = null;
}
}
}
return lista;
}
public static string StringMk(string[] lista) {
string ki = "";
foreach (string elem in lista) {
ki += elem;
}
return ki;
}
public static void Main(string[] args) {
StreamReader sr = new StreamReader("m1.in");
StreamWriter sw = new StreamWriter("m1.out");
int eszam = int.Parse(sr.ReadLine());
for (int i = 0; i < eszam; i++) {
string[] sor = sr.ReadLine().Split(' ');
string[] K;
string[] Z;
int lK = int.Parse(sor[0]);
K = new string[lK];
for (int ii = 0; ii < lK; ii++) {
K[ii] = sor[1+ii];
}
int j = 1;
while (Char.IsLetter(sor[j][0])) {
j++;
}
int lZ = int.Parse(sor[j]);
Z = new string[lZ];
for (int ii = 0; ii < lZ; ii++) {
Z[ii] = sor[1+lK+1+ii];
}
string llista = sor[sor.Length-1];
string[] lista = new string[llista.Length];
lista[0] = Convert.ToString(llista[0]);
for (int ii = 1; ii < llista.Length; ii++) {
int jj = 0;
while (lista[jj] != null) jj ++;
lista[jj] = Convert.ToString(llista[ii]);
lista = Csiribá(lista, K, Z);
}
sw.Write("Case#");
sw.Write(i+1);
sw.Write(": [");
int iii = 0;
while (iii < lista.Length) {
if (lista[iii] != null) {
sw.Write(lista[iii]);
if (iii+1 < lista.Length) {
if (lista[iii+1] != null) {
sw.Write(", ");
}}
}
iii++;
}
sw.WriteLine("]");
}
sw.Close();
Console.ReadKey(true);
}
}
}
|