อย่างแรกที่เราจำเป็นต้องทำสำหรับโจทย์ข้อนี้คือนำตัวเลขข้างต้นในข้อมูลนำเข้ามาเรียงจากน้อยไปมาก เนื่องจากมีเพียงสามตัว เราสามารถแบ่งกรณีและทำตรงๆหรือถ้าหากไม่อยากเขียนโค้ดมากก็สามารถใช้ 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']); } }