#include <iostream>

void reverse_array(int length, int *data) {
  for (int i=0; i<length/2; i++) {
    int temp = data[i];
    data[i] = data[length-i-1];
    data[length-i-1] = temp;
  }
}


void rotate_array(int length, int dist, int *data) {
  reverse_array(length, data);
  reverse_array(dist, data+(length-dist));
  reverse_array(length-dist, data);
}
 

// Simple test 
   
int main() {
  int t[] = {0,1,2,3,4,5,6,7,8,9};
  
  reverse_array(10, t);
  
  for (int i=0; i<10; i++)
    cout << t[i] << endl;
  
  reverse_array(10, t);

  rotate_array(10, 3, t);
  
  for (int i=0; i<10; i++)
    cout << t[i] << endl;
}
  
