eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Двойной переворот

опубликовано 03.12.2023, 21:38:52

спасибо огромное!

опубликовано 04.01.2024, 14:09:33

c# - 100%

using System; using System.Linq; namespace ConsoleApp1 { internal class Program { static void Main() { string s = Console.ReadLine().Trim(); string[] arr = s.Split(' '); int n = int.Parse(arr[0].Trim()); int a = int.Parse(arr[1].Trim()); int b = int.Parse(arr[2].Trim()); int c = int.Parse(arr[3].Trim()); int d = int.Parse(arr[4].Trim());

        int[] ints = Enumerable.Range(1, n).ToArray();
        int[] temp = new int[b - a + 1];

        int say = 0;
        for (int i = a - 1; i <= b - 1; i++)
        {
            temp[say] = ints[i];
            say++;
        }

        say = 0;
        for (int i = b - 1; i >= a - 1; i--)
        {
            ints[i] = temp[say];
            say++;
        }

        temp = new int[d - c + 1];

        say = 0;
        for (int i = c - 1; i <= d - 1; i++)
        {
            temp[say] = ints[i];
            say++;
        }

        say = 0;
        for (int i = d - 1; i >= c - 1; i--)
        {
            ints[i] = temp[say];
            say++;
        }

        Console.WriteLine(string.Join(" ", ints));
        Console.ReadKey();
    }
}

}

опубликовано 05.01.2024, 14:29:21

include <stdio.h>

int main() { int N, A, B, C, D;

scanf("%d %d %d %d %d", &N, &A, &B, &C, &D);


int array[N];
for (int i = 0; i < N; ++i) {
    array[i] = i + 1;
}


int temp;
for (int i = 0; i < (B - A + 1) / 2; ++i) {
    temp = array[A + i - 1];
    array[A + i - 1] = array[B - i - 1];
    array[B - i - 1] = temp;
}


for (int i = 0; i < (D - C + 1) / 2; ++i) {
    temp = array[C + i - 1];
    array[C + i - 1] = array[D - i - 1];
    array[D - i - 1] = temp;
}


for (int i = 0; i < N; ++i) {
    printf("%d ", array[i]);
}

return 0;

} kocurun ;))))lol