답안 #238774

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
238774 2020-06-12T19:11:15 Z iliaM 고장난 휴대전화기 (COCI14_mobitel) C++17
50 / 50
5 ms 384 KB
#include <bits/stdc++.h>

using namespace std;

#ifndef HELLO_PEOPLE
#define cerr if(0) cout
#endif

vector<string> keys = {"", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    vector<pair<int, int>> where(26);
    for (int i = 0; i < 9; i++) {
        for (int j = 0; j < (int)keys[i].size(); j++) {
            where[keys[i][j] - 'a'] = {i + 1, j + 1};
        }
    }
    vector<int> a(9);
    for (int i = 0; i < 9; i++) {
        int b;
        cin >> b;
        a[--b] = i + 1;
    }
    string s;
    cin >> s;
    string res;
    int last = INT_MAX;
    for (char i = 'a'; i <= 'z'; i++) {
        where[i - 'a'].first = a[where[i - 'a'].first - 1];
    }
    for (auto &c : s) {
        if (last == where[c - 'a'].first) res += '#';
        last = where[c - 'a'].first;
        res += string(where[c - 'a'].second, where[c - 'a'].first + '0');
    }
    cout << res;
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 4 ms 384 KB Output is correct
5 Correct 4 ms 384 KB Output is correct
6 Correct 5 ms 384 KB Output is correct
7 Correct 4 ms 384 KB Output is correct
8 Correct 5 ms 384 KB Output is correct
9 Correct 5 ms 384 KB Output is correct
10 Correct 5 ms 384 KB Output is correct