codechef NOCODING : Code Crazy Minions

問題概要

階差数列の和が一定数を越えるか判定する問題。

acceptされたコード

#include <cstdio>
#include <cstring>
using namespace std;

const int MAX_L = 1000;
char buf[MAX_L + 1];

void init() {
	scanf(" %s ", buf);
}

bool solve() {
	const int L = strlen(buf);
	int cnt = 0;
	for (int i = 0; i + 1 < L; ++i) {
		cnt += (buf[i+1] - buf[i] + 26) % 26;
	}

	return cnt + L + 1 <= L * 11;
}

int main() {
	int T;
	scanf("%d", &T);
	for (int _ = 0; _ < T; ++_) {
		init();
		puts(solve() ? "YES": "NO");
	}
	return 0;
}