【深基3.习9】[COCI2006-2007#2] ABC · 教师题解

【深基3.习9】[COCI2006-2007#2] ABC

解题思路

升序排序三个数,使下标 0、1、2 分别代表 A、B、C。按第二行字母字符串中的顺序访问数组。

正确性说明

排序确定字母到数值的唯一对应;逐字母取值恰好得到指定排列。

易错点

第二行字母无空格;不要按原输入顺序给数命名 A、B、C。

复杂度

时间 O(1),空间 O(1)。

参考代码(C++11)

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int a[3];
    cin >> a[0] >> a[1] >> a[2];
    sort(a, a + 3);
    string s;
    cin >> s;
    for (int i = 0; i < 3; i++) {
        if (i)
            cout << " ";
        cout << a[s[i] - 'A'];
    }
    cout << "\n";
    return 0;
}
返回题目