MAGCARI

SMS

Sep 30th, 2022
787
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.82 KB | None | 0 0
  1. /*
  2.     Task        : SMS Thumb
  3.     Author      : Phumipat C. [MAGCARI]
  4.     Language    : C++
  5. */
  6. #include<bits/stdc++.h>
  7. using namespace std;
  8. char press(int x,int y,int m){
  9.     if(x == 0 && y == 0){
  10.         return '0';
  11.     }else if(x == 1 && y == 0){
  12.         m%=3;
  13.         if(m == 0)      return 'C';
  14.         else if(m == 1) return 'A';
  15.         else if(m == 2) return 'B';
  16.     }else if(x == 2 && y == 0){
  17.         m%=3;
  18.         if(m == 0)      return 'F';
  19.         else if(m == 1) return 'D';
  20.         else if(m == 2) return 'E';
  21.     }else if(x == 0 && y == 1){
  22.         m%=3;
  23.         if(m == 0)      return 'I';
  24.         else if(m == 1) return 'G';
  25.         else if(m == 2) return 'H';
  26.     }else if(x == 1 && y == 1){
  27.         m%=3;
  28.         if(m == 0)      return 'L';
  29.         else if(m == 1) return 'J';
  30.         else if(m == 2) return 'K';
  31.     }else if(x == 2 && y == 1){
  32.         m%=3;
  33.         if(m == 0)      return 'O';
  34.         else if(m == 1) return 'M';
  35.         else if(m == 2) return 'N';
  36.     }else if(x == 0 && y == 2){
  37.         m%=4;
  38.         if(m == 0)      return 'S';
  39.         else if(m == 1) return 'P';
  40.         else if(m == 2) return 'Q';
  41.         else            return 'R';
  42.     }else if(x == 1 && y == 2){
  43.         m%=3;
  44.         if(m == 0)      return 'V';
  45.         else if(m == 1) return 'T';
  46.         else if(m == 2) return 'U';
  47.     }else{
  48.         m%=4;
  49.         if(m == 0)      return 'Z';
  50.         else if(m == 1) return 'W';
  51.         else if(m == 2) return 'X';
  52.         else            return 'Y';
  53.     }
  54. }
  55. char mes[85];
  56. int main(){
  57.     int n,s,m,x,y,idx = 0,cx,cy;
  58.     scanf("%d %d %d",&n,&s,&m);
  59.     switch(s){
  60.         case 1: x=0,y=0;    break;
  61.         case 2: x=1,y=0;    break;
  62.         case 3: x=2,y=0;    break;
  63.         case 4: x=0,y=1;    break;
  64.         case 5: x=1,y=1;    break;
  65.         case 6: x=2,y=1;    break;
  66.         case 7: x=0,y=2;    break;
  67.         case 8: x=1,y=2;    break;
  68.         case 9: x=2,y=2;    break;
  69.     }
  70.     char res = press(x,y,m);
  71.     if(res != '0')
  72.         mes[idx] = res,idx++;
  73.     for(int i=2;i<=n;i++){
  74.         scanf("%d %d %d",&cx,&cy,&m);
  75.         x+=cx,y+=cy;
  76.         res = press(x,y,m);
  77.         if(res != '0'){
  78.             mes[idx] = res,idx++;
  79.         }else if(idx != 0){
  80.             idx--;
  81.             mes[idx] = NULL;
  82.         }
  83.     }
  84.     if(idx == 0)    printf("null\n");
  85.     else            printf("%s\n",mes);
  86.     return 0;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment