Advertisement
semenrbt

laba_stepan

Jan 16th, 2021
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.86 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6. int main() {
  7.     int N;
  8.     cin >> N;
  9.     char a[N][101];
  10.     for (int k = 0; k < N; k++) {
  11.         for (int i = 0; i < 101; i++) a[k][i] = 0;
  12.     }
  13.  
  14.     for (int k = 0; k < N; k++)
  15.         cin >> a[k];
  16.  
  17.     int size[N] = { 0 };
  18.     for (int k = 0; k < N; k++) {
  19.         int i = 0;
  20.         while (a[k][i] != 0) i++;
  21.         size[k] = i;
  22.     }
  23.  
  24.  
  25.     int max = 0, max_n = 0;
  26.     for (int k = 0; k < N; k++) {
  27.         if (a[k][0] - 48 > max) {
  28.             max_n = k;
  29.             max = a[k][0] - 48;
  30.         }
  31.     }
  32.         long res = max;
  33.    
  34.         for (int k = 1; k < size[max_n]; k++)
  35.             res = res * 10 + a[max_n][k] - 48;
  36.         a[max_n][0] = 0;
  37.  
  38.         for (int k = 1; k < N; k++) {
  39.             max = -1; max_n = 0;
  40.             for (int m = 0; m < N; m++) {
  41.                 if (a[m][0] - 48 >= max) {
  42.                     if(a[m][0]-48 == max){
  43.                         int c_old = max, c_new = a[m][0] - 48;
  44.                         if(size[max_n] > 1){ // считаем old
  45.                             for(int g = 1; g < size[max_n]; g++){
  46.                                 c_old = c_old * 10 + a[max_n][g] - 48;
  47.                             }
  48.                         }
  49.                         for(int g = 0; g < size[m]; g++){
  50.                             c_old = c_old * 10 + a[m][g] - 48;
  51.                         }
  52.                        
  53.                         if(size[m] > 1){ // считаем new
  54.                             for(int g = 1; g < size[m]; g++){
  55.                                 c_new = c_new * 10 + a[m][g] - 48;
  56.                             }
  57.                         }
  58.                         for(int g = 0; g < size[max_n]; g++){
  59.                             c_new = c_new * 10 + a[max_n][g] - 48;
  60.                         }
  61.                        
  62.                         if(c_new > c_old){
  63.                             max_n = m;
  64.                             max = a[m][0] - 48;
  65.                         }
  66.                        
  67.                     }
  68.                     else{
  69.                         max_n = m;
  70.                         max = a[m][0] - 48;
  71.                     }
  72.                
  73.                 }
  74.             }
  75.         //  cout << max << endl;
  76.             for (int z = 0; z < size[max_n]; z++)
  77.                 res = res * 10 + a[max_n][z] - 48;
  78.             a[max_n][0] = 0;
  79.            
  80.         }
  81.         cout << res << endl;
  82.     }
  83.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement