Advertisement
CSenshi

From Sensei

Feb 2nd, 2020
401
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.65 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. bool isdg(string s)
  4. {
  5.     for (int i = 0; i < s.length(); i++)
  6.     {
  7.         if (!isdigit(s[i]))
  8.             return false;
  9.     }
  10.     return true;
  11. }
  12. int main()
  13. {
  14.     int tests;
  15.     cin >> tests;
  16.     string input;
  17.     while (tests--)
  18.     {
  19.         cin >> input;
  20.         int str_len = input.length();
  21.         int r_pos = input.find('R');
  22.         int c_pos = input.find('C');
  23.         if (c_pos != -1 && r_pos != -1 && c_pos > 1 && isdg(input.substr(1, c_pos - 1)))
  24.         {
  25.  
  26.             int row_num = stoi(input.substr(1, c_pos - 1));
  27.             int col_num = stoi(input.substr(c_pos + 1));
  28.             string result = "";
  29.             while (col_num > 0)
  30.             {
  31.                 int index = (col_num - 1) % 26;
  32.                 result = (char)(index + 'A') + result;
  33.                 col_num = (col_num - 1) / 26;
  34.             }
  35.             cout << result << row_num << endl;
  36.         }
  37.         else
  38.         {
  39.             int row_num_index = 0;
  40.             for (int i = 0; i < str_len; i++)
  41.             {
  42.                 if (isdigit(input[i]))
  43.                 {
  44.                     row_num_index = i;
  45.                     break;
  46.                 }
  47.             }
  48.             string col_letters = input.substr(0, row_num_index);
  49.             int result = 0;
  50.             for (int i = 0; i < col_letters.length(); i++)
  51.             {
  52.                 result *= 26;
  53.                 result += col_letters[i] - 'A' + 1;
  54.             }
  55.             row_num_index = stoi(input.substr(row_num_index, str_len - row_num_index));
  56.             cout << "R" << row_num_index << "C" << result << endl;
  57.         }
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement