Submission

Status:

[PP-SSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: 1234

Problemset: สตริงซ้ำซ้ำ

Language: cpp

Time: 0.002 second

Submitted On: 2025-06-01 19:11:38

#include <iostream>
using namespace std;

bool is_all_upper(const char* s) {
    for (int i = 0; s[i] != '\0'; ++i)
        if (s[i] < 'A' || s[i] > 'Z')
            return false;
    return true;
}

bool is_all_lower(const char* s) {
    for (int i = 0; s[i] != '\0'; ++i)
        if (s[i] < 'a' || s[i] > 'z')
            return false;
    return true;
}

int main() {
    char str1[21], str2[21];
    cin >> str1 >> str2;

    bool upper_mode = is_all_upper(str1) && is_all_upper(str2);
    bool lower_mode = is_all_lower(str1) && is_all_lower(str2);

    bool in_str1[26] = {false};
    bool in_str2[26] = {false};

    for (int i = 0; str1[i] != '\0'; ++i) {
        char ch = str1[i];
        if (ch >= 'A' && ch <= 'Z') ch = ch - 'A' + 'a';
        in_str1[ch - 'a'] = true;
    }

    for (int i = 0; str2[i] != '\0'; ++i) {
        char ch = str2[i];
        if (ch >= 'A' && ch <= 'Z') ch = ch - 'A' + 'a';
        in_str2[ch - 'a'] = true;
    }

    for (int i = 0; i < 26; ++i) {
        if (in_str1[i] && in_str2[i]) {
            char out_char;
            if (upper_mode)
                out_char = i + 'A';
            else
                out_char = i + 'a';
            cout << out_char << ' ';
        }
    }

    return 0;
}