Problems
Double reverse
спасибо огромное!
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();
}
}
}
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