Advertisement
AshGir

fdfsas

Nov 27th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.27 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3. #include <algorithm>
  4. #include <iomanip>
  5. #include <vector>
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.     int n,q;
  11.     cin>>n>>q;
  12.     vector<int> sf(n);
  13.     for(int i = 0; i<n; i++)
  14.     {
  15.         cin>>sf[i];
  16.     }
  17.     vector<int> ans;
  18.     int pol[n][n]= {0};
  19.  
  20.     for(int y = 0; y<n; y++)
  21.     {
  22.         int ror[n]= {0};
  23.  
  24.  
  25.         for(int i = y; i<n; i++)
  26.         {
  27.             int k = sf[i];
  28.             ror[k]++;
  29.         }
  30.  
  31.         for(int i = 0; i<n; i++)
  32.         {
  33.             if(ror[i] ==0)
  34.             {
  35.                 pol[y][n-1]= i;
  36.                 break;
  37.             }
  38.         }
  39.         int mi = pol[y][n-1];
  40.  
  41.         for(int z = n-1; z>y; z--)
  42.         {
  43.             int k = sf[z];
  44.             ror[k]--;
  45.             if(ror[k] ==  0 && k<mi )
  46.             {
  47.                 mi = k;
  48.             }
  49.             pol[y][z-1] = mi;
  50.  
  51.  
  52.  
  53.  
  54.  
  55.         }
  56.     }
  57.     for(int i = 0; i<n; i++)
  58.     {
  59.         for(int y = 0; y<n; y++)
  60.         {
  61.             cout<<pol[i][y]<<" ";
  62.  
  63.         }
  64.         cout<<endl;
  65.  
  66.     }
  67.     for(int i = 0; i<q; i++)
  68.     {
  69.         char w ;
  70.         cin>>w;
  71.         if(w=='!')
  72.         {
  73.             int l = 0;
  74.             int r = 0;
  75.             cin>>l>>r;
  76.  
  77.             l--;
  78.             sf[l] = r;
  79.  
  80.                for(int y = 0; y<n; y++)
  81.     {
  82.         int ror[n]= {0};
  83.  
  84.  
  85.         for(int i = y; i<n; i++)
  86.         {
  87.             int k = sf[i];
  88.             ror[k]++;
  89.         }
  90.  
  91.         for(int i = 0; i<n; i++)
  92.         {
  93.             if(ror[i] ==0)
  94.             {
  95.                 pol[y][n-1]= i;
  96.                 break;
  97.             }
  98.         }
  99.         int mi = pol[y][n-1];
  100.  
  101.         for(int z = n-1; z>y; z--)
  102.         {
  103.             int k = sf[z];
  104.             ror[k]--;
  105.             if(ror[k] ==  0 && k<mi )
  106.             {
  107.                 mi = k;
  108.             }
  109.             pol[y][z-1] = mi;
  110.  
  111.  
  112.  
  113.  
  114.  
  115.         }
  116.     }
  117.  
  118. }
  119.         else
  120.         {
  121.  
  122.  
  123.             int l = 0;
  124.             int r = 0;
  125.             cin>>l>>r;
  126.             l--;
  127.             r--;
  128.  
  129.  
  130.  
  131.             cout<<pol[l][r]<<endl;
  132.             //  cout<<endl;
  133.  
  134.  
  135.         }
  136.  
  137.  
  138.     }
  139.  
  140.     return 0;
  141. }
  142. /*
  143. 6 8
  144. 4 1 0 2 2 3
  145.  
  146. ? 1 6
  147.  ? 4 6
  148.  ? 2 5
  149.   ? 2 6
  150.    ! 3 3
  151.    ? 1 6
  152.     ! 4 0
  153.     ? 1 6
  154.  
  155.  
  156. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement