yejolga

ol_5_12

Nov 16th, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4.  
  5.  
  6. using namespace std;
  7.  
  8. vector <int> v;
  9.  
  10. void shift(int a, int b, int k)
  11. {
  12.     vector <int> tmp;
  13.     tmp.resize(b-a);
  14.     for(int i = a; i < b; i++)
  15.     {
  16.         if (i+k >= b)
  17.             tmp[i-a+k-b+a] = v[i];
  18.         else if (i+k < a)
  19.             tmp[i-a+k+b-a] = v[i];
  20.         else
  21.             tmp[i-a+k] = v[i];
  22.     }
  23.     for(int i = a; i < b; i++)
  24.         v[i] = tmp[i-a];
  25. }
  26.  
  27. int main()
  28. {
  29.     ifstream cin("input.txt");
  30.  
  31.     int n;
  32.     cin>>n;
  33.     v.resize(n);
  34.     for(int i = 0; i < n; i++)
  35.         v[i] = i+1;
  36.  
  37.     int m;
  38.     cin>>m;
  39.     for(int i = 0; i < m; i++)
  40.     {
  41.         int a, b, k;
  42.         cin>>a>>b>>k;
  43.  
  44.     //for(int i = 0; i < n; i++)    //check if current shift was made correctly
  45.       //  cout<<v[i]<<' ';
  46.     //cout<<'\n';
  47.  
  48.         shift(a-1, b, k%(b-a+1));
  49.     }
  50.  
  51.     for(int i = 0; i < n; i++)
  52.         cout<<v[i]<<' ';
  53.  
  54. }
Add Comment
Please, Sign In to add comment