Submission #4241658
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()
{
string s = Console.ReadLine();
bool isN = false;
bool isW = false;
bool isS = false;
bool isE = false;
for(int i=0;i<s.Length;++i)
{
switch(s[i])
{
case 'N': isN = true; break;
case 'W': isW = true; break;
case 'S': isS = true; break;
case 'E': isE = true; break;
}
}
bool b = ((isN && isS) || (!isN && !isS)) && ((isW && isE) || (!isW && !isE));
string ans = b ? "Yes" : "No";
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 - Wanna go back home |
User |
masakam1 |
Language |
C# (Mono 4.6.2.0) |
Score |
200 |
Code Size |
4155 Byte |
Status |
AC |
Exec Time |
20 ms |
Memory |
13140 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
200 / 200 |
Status |
|
|
Set Name |
Test Cases |
Sample |
s1.txt, s2.txt, s3.txt, s4.txt |
All |
01.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 13.txt, 15.txt, s1.txt, s2.txt, s3.txt, s4.txt |
Case Name |
Status |
Exec Time |
Memory |
01.txt |
AC |
20 ms |
11092 KB |
04.txt |
AC |
20 ms |
11092 KB |
05.txt |
AC |
20 ms |
9044 KB |
06.txt |
AC |
20 ms |
11092 KB |
07.txt |
AC |
20 ms |
9044 KB |
08.txt |
AC |
19 ms |
9044 KB |
09.txt |
AC |
20 ms |
11092 KB |
10.txt |
AC |
20 ms |
11092 KB |
11.txt |
AC |
20 ms |
11092 KB |
13.txt |
AC |
20 ms |
13140 KB |
15.txt |
AC |
20 ms |
11092 KB |
s1.txt |
AC |
20 ms |
11092 KB |
s2.txt |
AC |
20 ms |
9044 KB |
s3.txt |
AC |
20 ms |
11092 KB |
s4.txt |
AC |
20 ms |
11092 KB |