#include #include char vet1[2000][11], vet2[2000][11]; void tisk(char *s) { if (s[0] != '.') printf("%s ", s); else printf("%s", s); } int main() { int del1, del2; for (;;) {/* for (int i = 0; i < del1; i++) printf("%s ", vet1[i]); putchar('\n'); for (int i = 0; i < del2; i++) printf("%s ", vet2[i]);*/ del1 = 0; do { //del1++; scanf("%s", vet1[del1]); } while (vet1[del1++][0] != '.'); if (del1 == 1) return 0; del2 = 0; do { scanf("%s", vet2[del2]); } while (vet2[del2++][0] != '.'); // for (int i = 0; i < del1; i++) printf("%s ", vet1[i]); // putchar('\n'); // for (int i = 0; i < del2; i++) printf("%s ", vet2[i]); int pos1 = 0, pos2 = 0; while(pos1 < del1 && pos2 < del2) { if (!strcmp(vet1[pos1], vet2[pos2])) { tisk(vet1[pos1]); pos1++; pos2++; } else { int i; int j; for (i = pos2 + 1; i < del2; i++) { if (!strcmp(vet1[pos1], vet2[i])) { break; } } for (j = pos1 + 1; j < del1; j++) { if (!strcmp(vet2[pos2], vet1[j])) { break; } } if ((i == del2 && j == del1) || (i != del2 && j != del1)) { if (strcmp(vet1[pos1], vet2[pos2]) < 0) { printf("%s ", vet1[pos1]); pos1++; } else { printf("%s ", vet2[pos2]); pos2++; } } else if (i != del2) { printf("%s ", vet2[pos2]); pos2++; } else { printf("%s ", vet1[pos1]); pos1++; } } } putchar('\n'); } return 0; }