Submission #4246287
Source Code Expand
using System;
using System.Collections.Generic;
using System.Linq;
namespace Practice
{
class Program
{
static void Main(string[] args)
{
Solve();
}
private const int MOD = 1000000007;
static void Solve()
{
var hw = ReadAndParseIntArr();
int h = hw[0];
int w = hw[1];
var s = new string[h][];
for(int i=0;i<h;++i)
{
s[i ] = Console.ReadLine().Split(' ');
}
string ans = null;
for(int y = 0;y < h;++y)
{
for(int x = 0;x<w;++x)
{
if( s[y][x] == "snuke")
{
ans = ((char)(x + 'A')).ToString() + (y + 1).ToString();
}
}
}
Console.WriteLine(ans);
}
#region よく使う便利関数
private static bool isPrime(long x)
{
if (x == 2) { return true; }
if (x < 2 || x % 2 == 0) { return false; }
long i = 3;
while (i * i <= x)
{
if (x % i == 0) { return false; }
i = i + 2;
}
return true;
}
private static long lcm(long x, long y)
{
return x / gcd(x, y) * y;
}
private static long gcd(long x, long y)
{
return y > 0 ? gcd(y, x % y) : x;
}
private static long pow(long x, long n)
{
if (n == 0) { return 1; }
long res = pow(x * x % MOD, n / 2);
if (n % 2 == 1)
{
res = res * x % MOD;
}
return res;
}
private static int ReadAndParseInt()
{
return int.Parse(Console.ReadLine());
}
private static int[] ReadAndParseIntArr()
{
return Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse);
}
private static long ReadAndParseLong()
{
return long.Parse(Console.ReadLine());
}
private static long[] ReadAndParseLongArr()
{
return Array.ConvertAll(Console.ReadLine().Split(' '), long.Parse);
}
/// <summary>
/// 指定した値以上の先頭のインデクスを返す
/// </summary>
/// <typeparam name="T">比較する値の型</typeparam>
/// <param name="arr">対象の配列(※ソート済みであること)</param>
/// <param name="start">開始インデクス [inclusive]</param>
/// <param name="end">終了インデクス [exclusive]</param>
/// <param name="value">検索する値</param>
/// <param name="comparer">比較関数(インターフェイス)</param>
/// <returns>指定した値以上の先頭のインデクス</returns>
public static int LowerBound<T>(IReadOnlyList<T> arr, int start, int end, T value, IComparer<T> comparer)
{
int low = start;
int high = end;
int mid;
while (low < high)
{
mid = ((high - low) >> 1) + low;
if (comparer.Compare(arr[mid], value) < 0)
low = mid + 1;
else
high = mid;
}
return low;
}
//引数省略のオーバーロード
public static int LowerBound<T>(IReadOnlyList<T> arr, T value) where T : IComparable
{
return LowerBound(arr, 0, arr.Count, value, Comparer<T>.Default);
}
/// <summary>
/// 指定した値より大きい先頭のインデクスを返す
/// </summary>
/// <typeparam name="T">比較する値の型</typeparam>
/// <param name="arr">対象の配列(※ソート済みであること)</param>
/// <param name="start">開始インデクス [inclusive]</param>
/// <param name="end">終了インデクス [exclusive]</param>
/// <param name="value">検索する値</param>
/// <param name="comparer">比較関数(インターフェイス)</param>
/// <returns>指定した値より大きい先頭のインデクス</returns>
public static int UpperBound<T>(IReadOnlyList<T> arr, int start, int end, T value, IComparer<T> comparer)
{
int low = start;
int high = end;
int mid;
while (low < high)
{
mid = ((high - low) >> 1) + low;
if (comparer.Compare(arr[mid], value) <= 0)
low = mid + 1;
else
high = mid;
}
return low;
}
//引数省略のオーバーロード
public static int UpperBound<T>(IReadOnlyList<T> arr, T value)
{
return UpperBound(arr, 0, arr.Count, value, Comparer<T>.Default);
}
#endregion
}
}
Submission Info
Submission Time |
|
Task |
A - Where's Snuke? |
User |
masakam1 |
Language |
C# (Mono 4.6.2.0) |
Score |
100 |
Code Size |
5227 Byte |
Status |
AC |
Exec Time |
23 ms |
Memory |
11220 KB |
Judge Result
Set Name |
sample |
all |
Score / Max Score |
0 / 0 |
100 / 100 |
Status |
|
|
Set Name |
Test Cases |
sample |
sample-01.txt, sample-02.txt |
all |
sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, sample-01.txt, sample-02.txt |
Case Name |
Status |
Exec Time |
Memory |
01-01.txt |
AC |
22 ms |
11220 KB |
01-02.txt |
AC |
22 ms |
9172 KB |
01-03.txt |
AC |
22 ms |
11220 KB |
01-04.txt |
AC |
23 ms |
11220 KB |
01-05.txt |
AC |
23 ms |
11220 KB |
01-06.txt |
AC |
23 ms |
11220 KB |
01-07.txt |
AC |
22 ms |
9300 KB |
sample-01.txt |
AC |
22 ms |
11220 KB |
sample-02.txt |
AC |
23 ms |
11220 KB |