View difference between Paste ID: xmnFwU46 and WtyjKDxu
SHOW: | | - or go back to the newest paste.
1
int solve(char **a, int n) {
2
  int i, shifted_i, flag = 0;
3
  char *c;
4
  char hash[ASCII_LEN];
5
6
  // Нулевая итерация
7
  clean_string(hash, ASCII_LEN);
8
  for (c = a[0]; *c; c++) {
9
    hash[(int) *c] = 1;
10
  }
11
12
  // Идем по массиву
13
  for (i = 1, shifted_i = 0; i < n; i++) {
14
    printf("-- %d\n", i);
15
    // Проверяем совпадения букв через хеш таблицу
16
    for (c = a[i]; *c; c++) {
17
      if ((int)hash[(int) *c] == 1) {
18
        printf("-- %d -- zhizha\n", i);
19
        flag = 1;
20
        break;
21
      }
22
    }
23
24-
    for (c = a[shifted_i]; *c; c++) {
24+
25
    clean_string(hash, ASCII_LEN);
26
    for (c = a[i]; *c; c++) {
27
      hash[(int) *c] = 1;
28
    }
29
30
    // Если буквы не совпадали (flag == 0), то никаких пертираний не будет
31
    if (flag == 0) {
32-
    a[shifted_i] = a[i];
32+
33
      a[shifted_i] = a[i];
34
    }
35
36
    // Готовим переменные к след итерации
37
    flag = 0;
38
  }
39
  shifted_i++;
40
  a[shifted_i] = a[i];
41
42
  return shifted_i;
43
}