#include <stdio.h>
int main(void) {
char password[9] = {0};
int keysize = 4;
for (;;) {
// get next password value
// we do it by adding 1 in 26-al system
int level = 0; // current level, starts at 0
while (level < keysize) {
if (password[level] == 0) {
password[level] = 'a';
break;
}
if (password[level] >= 'a' && password[level] < 'c') {
password[level]++;
break;
}
if (password[level] == 'c') {
password[level] = 'a';
level++;
}
}
if (level >= keysize)
break; // we have checked all passwords!
// check if password matches:
//if (check_password(password)) {
// printf("Hooray! Password found: %s\n", password);
// break;
//}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKSB7CgljaGFyIHBhc3N3b3JkWzldID0gezB9OwoJaW50IGtleXNpemUgPSA0OwoJZm9yICg7OykgewoJICAgIC8vIGdldCBuZXh0IHBhc3N3b3JkIHZhbHVlCgkgICAgLy8gd2UgZG8gaXQgYnkgYWRkaW5nIDEgaW4gMjYtYWwgc3lzdGVtCgkgICAgaW50IGxldmVsID0gMDsgLy8gY3VycmVudCBsZXZlbCwgc3RhcnRzIGF0IDAKCSAgICB3aGlsZSAobGV2ZWwgPCBrZXlzaXplKSB7CgkgICAgICAgIGlmIChwYXNzd29yZFtsZXZlbF0gPT0gMCkgewoJICAgICAgICAgICAgcGFzc3dvcmRbbGV2ZWxdID0gJ2EnOwoJICAgICAgICAgICAgYnJlYWs7CgkgICAgICAgIH0KCSAgICAgICAgaWYgKHBhc3N3b3JkW2xldmVsXSA+PSAnYScgJiYgcGFzc3dvcmRbbGV2ZWxdIDwgJ2MnKSB7CgkgICAgICAgICAgICBwYXNzd29yZFtsZXZlbF0rKzsKCSAgICAgICAgICAgIGJyZWFrOwoJICAgICAgICB9CgkgICAgICAgIGlmIChwYXNzd29yZFtsZXZlbF0gPT0gJ2MnKSB7CgkgICAgICAgICAgICBwYXNzd29yZFtsZXZlbF0gPSAnYSc7CgkgICAgICAgICAgICBsZXZlbCsrOwoJICAgICAgICB9CgkgICAgfQoJICAgIGlmIChsZXZlbCA+PSBrZXlzaXplKQoJICAgICAgICBicmVhazsgLy8gd2UgaGF2ZSBjaGVja2VkIGFsbCBwYXNzd29yZHMhCgkgICAgLy8gY2hlY2sgaWYgcGFzc3dvcmQgbWF0Y2hlczoKCSAgICAvL2lmIChjaGVja19wYXNzd29yZChwYXNzd29yZCkpIHsKCSAgICAvLyAgICBwcmludGYoIkhvb3JheSEgUGFzc3dvcmQgZm91bmQ6ICVzXG4iLCBwYXNzd29yZCk7CgkgICAgLy8gICAgYnJlYWs7CgkgICAgLy99CgkgICAgcHJpbnRmKCIlcyAiLCBwYXNzd29yZCk7Cgl9CglyZXR1cm4gMDsKfQo=