Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <cmath>
- using namespace std;
- void shift_mas (int mas[], int n, int k){
- int first_index, second_index, temp_first, temp_second;
- first_index = 0;
- temp_first = mas[first_index];
- for (int i = 0; i < n; i++){
- second_index = ( first_index + k ) % n;
- temp_second = mas[second_index];
- mas[second_index] = temp_first;
- temp_first = temp_second;
- first_index = second_index;
- }
- }
- void shift_left (int mas[], int n){
- int temp = mas[0];
- for (int i = 0; i < n-1; i++){
- mas[i] = mas[i+1];
- }
- mas[n-1] = temp;
- }
- void shift_right (int mas[], int n){
- int temp = mas[n-1];
- for (int i = 1; i < n; i++){
- mas[i] = mas[i-1];
- }
- mas[0] = temp;
- }
- void print_mas(int mas[], int n){
- ofstream out ("output.txt");
- for (int i = 0; i < n; i++){
- out << mas[i] << " ";
- }
- out.close();
- }
- int main () {
- ifstream in("input.txt"); ofstream out ("output.txt");
- const int N_MAX = 100000;
- int n, k, mas[N_MAX], step[N_MAX];
- in >> n;
- for (int i = 0; i < n; i++) in >> mas[i];
- in >> k;
- if (abs(k) % n != 0){
- if ( k >= 0 ) k %= n; else k = n - (-k) % n;
- //shift_mas(mas, n, k);
- for (int i = 0; i < n; i++){
- step[(i+k) % n] = i;
- }
- for (int i = 0; i < n; i++){
- out << mas[step[i]] << " ";
- }
- } else
- print_mas(mas, n);
- in.close(); out.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement