ABC

0009

อย่างแรกที่เราจำเป็นต้องทำสำหรับโจทย์ข้อนี้คือนำตัวเลขข้างต้นในข้อมูลนำเข้ามาเรียงจากน้อยไปมาก เนื่องจากมีเพียงสามตัว เราสามารถแบ่งกรณีและทำตรงๆหรือถ้าหากไม่อยากเขียนโค้ดมากก็สามารถใช้ function sort จาก header algorithm ได้โดยตรง

อย่างที่สองที่เราจำเป็นต้องทำคือ print ตัวเลขออกมาตามลำดับที่กำหนดมาในข้อมูลนำเข้า เราสามารถทำได้โดยการนำผลต่างระหว่างตัวอักษรที่กำลังพิจารณาอยู่กับ 'A' มาใช้เป็น index ได้อีกที นั่นคือเราต้องการนำตัวเลขที่ตำแหน่งที่บ่งบอกโดยผลต่างนี้ในลำดับของตัวเลขหลังการเรียงแล้ว การหาผลต่างนี้สามารถใช้เทคนิคการลบตัวเลข ASCII ระหว่างตัวอักษรที่กำลังพิจารณากับตัวอักษร 'A'

#include <cstdio>
#include <algorithm>
using namespace std;

int a[3];
char str[4];
int main() {
  for(int i = 0; i < 3; i++) scanf("%d", &a[i]);
  scanf("%s", str);
  sort(a, a+3);
  for(int i = 0; i < 3; i++) {
    printf("%d ", a[str[i] - 'A']);
  }
}