Problem:
Score : 200 points

Problem Statement

You are given a string S. Each character of S is uppercase or lowercase English letter.
Determine if S satisfies all of the following conditions:

The initial character of S is an uppercase A.

There is exactly one occurrence of C between the third character from the beginning and the second to last character (inclusive).

All letters except the A and C mentioned above are lowercase.

Constraints

4 ≤ |S| ≤ 10 (|S| is the length of the string S.)

Each character of S is uppercase or lowercase English letter.

Input

Input is given from Standard Input in the following format:

S

Output

If S satisfies all of the conditions in the problem statement, print AC; otherwise, print WA.

Sample Input 1

AtCoder

Sample Output 1

AC

The first letter is A, the third letter is C and the remaining letters are all lowercase, so all the conditions are satisfied.

Sample Input 2

ACoder

Sample Output 2

WA

The second letter should not be C.

Sample Input 3

AcycliC

Sample Output 3

WA

The last letter should not be C, either.

Sample Input 4

AtCoCo

Sample Output 4

WA

There should not be two or more occurrences of C.

Sample Input 5

Atcoder

Sample Output 5

WA

The number of C should not be zero, either.

Solution in C (Clang 3.8.0) (judge verdict: Accepted)

#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
#include <ctype.h>
#include <stdint.h>
#include <string.h>
#include <wchar.h>
#include <math.h>

#define MIN(a, b) ((a) < (b) ? (a) : (b))
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#define ABSS(a, b) ((a) > (b) ? (a) - (b) : (b) - (a))

int compare_f(const void *a, const void *b) {
	return *((size_t *)a) > *((size_t *)b) ? -1 : 1;
}

static size_t comb(const size_t n, const size_t r) {
	size_t result = 1;

	for (size_t i = 0; i < r; i++) {
		result *= n - i;
		result /= i + 1;
	}

	return result;
}

int main(void) {
	char S[11];

	scanf("%s", S);

	bool firstIsA = true;
	bool containsOneC = true;
	bool othersAreaSmall = true;
	size_t cCount = 0;
	for (size_t idx = 0; idx < strlen(S); idx++) {
		if (idx == 0) {
			if (S[idx] != 'A') {
				firstIsA = false;
				break;
			}
		}
		else if (2 <= idx && idx <= strlen(S) - 2) {
			if (S[idx] == 'C') {
				cCount++;
			}
			else {
				if (!('a' <= S[idx] && S[idx] <= 'z')) {
					othersAreaSmall = false;
					break;
				}
			}

			if (idx == strlen(S) - 2) {
				if (cCount != 1) {
					containsOneC = false;
					break;
				}
			}
		}
		else {
			if (!('a' <= S[idx] && S[idx] <= 'z')) {
				othersAreaSmall = false;
				break;
			}
		}
	}

	puts(((firstIsA && containsOneC && othersAreaSmall) ? "AC" : "WA"));

	return 0;
}