#include <iostream>

bool isValid(const std::string& str)
{
    if (str.size() != 10) return false;
    return
        (('a' <= str[0] && str[0] <= 'z') ||
        ('A' <= str[0] && str[0] <= 'Z')) &&
        ('0' <= str[1] && str[1] <= '9') &&
        ('0' <= str[2] && str[2] <= '9') &&
        ('0' <= str[3] && str[3] <= '9') &&
        ('0' <= str[4] && str[4] <= '9') &&
        ('0' <= str[5] && str[5] <= '9') &&
        (str[6] == '-' && str[7] == '0' && str[8] == '0') &&
        ('0' <= str[9] && str[9] <= '9');
}

int main() {
	std::cout << isValid("H12345-001") << std::endl; // good
	std::cout << isValid("bad") << std::endl; // bad
	std::cout << isValid("H12X45-001") << std::endl; // bad
}