/*
Южный федеральный университет, ИКТИБ, кафедра МОП ЭВМ
КТбо1-6 Гамалеев Владислав Евгеньевич
Задача A. Кассовый аппарат
09.04.2020
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int isSmall(char c)
{
return (c >= 'a' && c <= 'z');
}
int main(void)
{
freopen("output.txt", "w", stdout
); char s[501], t[501];
int *cnt_a
= (int*)calloc(26,sizeof(int)); int *cnt_A
= (int*)calloc(26,sizeof(int)); int *in_t
= (int*)calloc(26,sizeof(int)); int *in_T
= (int*)calloc(26,sizeof(int)); for (int i = 0; t[i]; ++i)
{
if (isSmall(t[i]))
{
cnt_a[t[i]-'a']++;
in_t[t[i]-'a'] = 1;
if (cnt_a[t[i]-'a'] > 2)
{
return 0;
}
}
else
{
cnt_A[t[i]-'A']++;
in_T[t[i]-'A'] = 1;
if (cnt_A[t[i]-'A'] > 2)
{
return 0;
}
}
}
for (int i = 0; s[i]; ++i)
{
if (isSmall(s[i])) cnt_a[s[i]-'a']++;
else cnt_A[s[i]-'A']++;
}
for (int i = 0; t[i]; ++i)
{
if (isSmall(t[i]) && cnt_a[t[i]-'a'] < 2)
{
return 0;
}
else if (!isSmall(t[i]) && cnt_A[t[i]-'A'] < 2)
{
return 0;
}
}
int *cnt_b
= (int*)calloc(26,sizeof(int)); int *cnt_B
= (int*)calloc(26,sizeof(int)); for (int i = 0; t[i]; ++i)
{
if (isSmall(t[i])) cnt_b[t[i]-'a']++;
else cnt_B[t[i]-'A']++;
}
for (int i = 0; s[i]; ++i)
{
if (isSmall(s[i]) && (cnt_b[s[i]-'a'] < 2 && cnt_a[s[i]-'a'] >= 2 && in_t[s[i]-'a']))
{
cnt_b[s[i]-'a']++;
}
else if (!isSmall(s[i]) && (cnt_B[s[i]-'A'] < 2 && cnt_A[s[i]-'A'] >= 2 && in_T[s[i]-'A']))
{
cnt_B[s[i]-'A']++;
}
}
return 0;
}
LyoK0K7QttC90YvQuSDRhNC10LTQtdGA0LDQu9GM0L3Ri9C5INGD0L3QuNCy0LXRgNGB0LjRgtC10YIsINCY0JrQotCY0JEsINC60LDRhNC10LTRgNCwINCc0J7QnyDQrdCS0JwK0JrQotCx0L4xLTYg0JPQsNC80LDQu9C10LXQsiDQktC70LDQtNC40YHQu9Cw0LIg0JXQstCz0LXQvdGM0LXQstC40YcK0JfQsNC00LDRh9CwIEEuINCa0LDRgdGB0L7QstGL0Lkg0LDQv9C/0LDRgNCw0YIKMDkuMDQuMjAyMAoqLwoKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgogCmludCBpc1NtYWxsKGNoYXIgYykKewogICAgcmV0dXJuIChjID49ICdhJyAmJiBjIDw9ICd6Jyk7Cn0KaW50IG1haW4odm9pZCkKewogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwogICAgY2hhciBzWzUwMV0sIHRbNTAxXTsKICAgIGdldHMocyk7CiAgICBnZXRzKHQpOwogCiAgICBpbnQgKmNudF9hID0gKGludCopY2FsbG9jKDI2LHNpemVvZihpbnQpKTsKICAgIGludCAqY250X0EgPSAoaW50KiljYWxsb2MoMjYsc2l6ZW9mKGludCkpOwogICAgaW50ICppbl90ID0gKGludCopY2FsbG9jKDI2LHNpemVvZihpbnQpKTsKICAgICBpbnQgKmluX1QgPSAoaW50KiljYWxsb2MoMjYsc2l6ZW9mKGludCkpOwogICAgZm9yIChpbnQgaSA9IDA7IHRbaV07ICsraSkKICAgIHsKICAgICAgICBpZiAoaXNTbWFsbCh0W2ldKSkKICAgICAgICB7CiAgICAgICAgICAgIGNudF9hW3RbaV0tJ2EnXSsrOwogICAgICAgICAgICBpbl90W3RbaV0tJ2EnXSA9IDE7CiAgICAgICAgICAgIGlmIChjbnRfYVt0W2ldLSdhJ10gPiAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBwcmludGYoIk5PIik7CiAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBjbnRfQVt0W2ldLSdBJ10rKzsKICAgICAgICAgICAgaW5fVFt0W2ldLSdBJ10gPSAxOwogICAgICAgICAgICBpZiAoY250X0FbdFtpXS0nQSddID4gMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHJpbnRmKCJOTyIpOwogICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAKICAgIH0KICAgCiAgICBmb3IgKGludCBpID0gMDsgc1tpXTsgKytpKQogICAgewogICAgICAgIGlmIChpc1NtYWxsKHNbaV0pKSBjbnRfYVtzW2ldLSdhJ10rKzsKICAgICAgICBlbHNlIGNudF9BW3NbaV0tJ0EnXSsrOwogICAgfQogICAKICAgIGZvciAoaW50IGkgPSAwOyB0W2ldOyArK2kpCiAgICB7CiAgICAgICAgaWYgKGlzU21hbGwodFtpXSkgJiYgY250X2FbdFtpXS0nYSddIDwgMikKICAgICAgICB7CiAgICAgICAgICAgIHByaW50ZigiTk8iKTsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKCFpc1NtYWxsKHRbaV0pICYmIGNudF9BW3RbaV0tJ0EnXSA8IDIpCiAgICAgICAgewogICAgICAgICAgICBwcmludGYoIk5PIik7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgIH0KIAogICAgaW50ICpjbnRfYiA9IChpbnQqKWNhbGxvYygyNixzaXplb2YoaW50KSk7CiAgICBpbnQgKmNudF9CID0gKGludCopY2FsbG9jKDI2LHNpemVvZihpbnQpKTsKICAgIGZvciAoaW50IGkgPSAwOyB0W2ldOyArK2kpCiAgICB7CiAgICAgICAgcHJpbnRmKCIlYyIsIHRbaV0pOwogICAgICAgIGlmIChpc1NtYWxsKHRbaV0pKSBjbnRfYlt0W2ldLSdhJ10rKzsKICAgICAgICBlbHNlIGNudF9CW3RbaV0tJ0EnXSsrOwogICAgfQogCiAgICBmb3IgKGludCBpID0gMDsgc1tpXTsgKytpKQogICAgewogICAgICAgIGlmIChpc1NtYWxsKHNbaV0pICYmIChjbnRfYltzW2ldLSdhJ10gPCAyICYmIGNudF9hW3NbaV0tJ2EnXSA+PSAyICYmIGluX3Rbc1tpXS0nYSddKSkKICAgICAgICB7CiAgICAgICAgICAgIHByaW50ZigiJWMiLCBzW2ldKTsKICAgICAgICAgICAgY250X2Jbc1tpXS0nYSddKys7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKCFpc1NtYWxsKHNbaV0pICYmIChjbnRfQltzW2ldLSdBJ10gPCAyICYmIGNudF9BW3NbaV0tJ0EnXSA+PSAyICYmIGluX1Rbc1tpXS0nQSddKSkKICAgICAgICB7CiAgICAgICAgICAgIHByaW50ZigiJWMiLCBzW2ldKTsKICAgICAgICAgICAgY250X0Jbc1tpXS0nQSddKys7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0=