2013年2月24日

UVa 628 - Passwords


#include <stdio.h>

int n, m, len, con[25][25];

void run(int now, char* rule, char* s) {
  int i;
  if (!rule[now]) {
    for (i = 0; rule[i]; i++)
      if (rule[i] == '#') printf("%s", s);
      else putchar(rule[i]);
    puts("");
    return;
  }
  if (rule[now] == '0') {
    for (i = 0; i < 10; i++) {
      rule[now] = i + '0';
      run(now + 1, rule, s);
    }
    rule[now] = '0';
  } else {
    run(now + 1, rule, s);
  }
}

int main() {
  while (scanf("%d\n", &n) == 1) {
    int i;
    char s[101][101];
    for (i = 0; i < n; i++)
      gets(s[i]);
    scanf("%d\n", &m);
    puts("--");
    while (m--) {
      char rule[999];
      gets(rule);
      for (i = 0; i < n; i++)
        run(0, rule, s[i]);
    }
  }
  return 0;
}

沒有留言:

張貼留言