Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.32 KB | None | 0 0
  1. #include <fstream>
  2. #include <cmath>
  3. using namespace std;
  4.  
  5. void shift_mas (int mas[], int n, int k){
  6.     int first_index, second_index, temp_first, temp_second;
  7.     first_index = 0;
  8.     temp_first = mas[first_index];
  9.     for (int i = 0; i < n; i++){
  10.         second_index = ( first_index + k ) % n;
  11.         temp_second = mas[second_index];
  12.         mas[second_index] = temp_first;
  13.         temp_first = temp_second;  
  14.         first_index = second_index;
  15.     }  
  16. }
  17.  
  18. void shift_left (int mas[], int n){
  19.     int temp = mas[0];
  20.     for (int i = 0; i < n-1; i++){
  21.         mas[i] = mas[i+1];
  22.     }
  23.     mas[n-1] = temp;
  24. }
  25.  
  26. void shift_right (int mas[], int n){
  27.     int temp = mas[n-1];
  28.     for (int i = 1; i < n; i++){
  29.         mas[i] = mas[i-1];
  30.     }
  31.     mas[0] = temp;
  32. }
  33.  
  34. void print_mas(int mas[], int n){
  35.     ofstream out ("output.txt");
  36.     for (int i = 0; i < n; i++){
  37.         out << mas[i] << " ";
  38.     }
  39.     out.close();
  40. }
  41.  
  42. int main () {
  43.     ifstream in("input.txt"); ofstream out ("output.txt");
  44.     const int N_MAX = 100000;
  45.     int n, k, mas[N_MAX], step[N_MAX];
  46.     in >> n;
  47.     for (int i = 0; i < n; i++) in >> mas[i];
  48.     in >> k;
  49.     if (abs(k) % n != 0){
  50.         if ( k >= 0 ) k %= n; else k = n - (-k) % n;
  51.         //shift_mas(mas, n, k);
  52.         for (int i = 0; i < n; i++){
  53.             step[(i+k) % n] = i;
  54.         }
  55.         for (int i = 0; i < n; i++){
  56.             out << mas[step[i]] << " ";
  57.         }
  58.     } else
  59.         print_mas(mas, n);
  60.     in.close(); out.close();
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement