Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kindlyman
0 / 0 / 0
Регистрация: 08.10.2014
Сообщений: 6
#1

Циклический сдвиг. Необходимо так сдвинуть массив B, чтобы количество различающихся индексов было минимальным - C++

16.11.2014, 18:08. Просмотров 139. Ответов 0
Метки нет (Все метки)

Помогите пожалуйста исправить. Проходит 68 тестов из 100

Дано 2 массива. Необходимо так циклически сдвинуть второй массив, чтобы количество индексов i, в которых массивы отличаются (то есть ai ≠q bi), было как можно меньше.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <vector>
#include <cassert>
#include <algorithm>
 
using namespace std;
 
int main ()
{
    int n;
    cin >> n;
 
    vector<int> a(n);
    for (int i = 0; i < n; i++)
        cin >> a[i];
 
    vector<int> b(n);
    for (int i = 0; i < n; i++)
        cin >> b[i];
 
    vector<int> ch;
    int k = 0;
    if (n == 1)
    {
        if (b[0] == a[0])
            cout << 0 << endl;
        else 
            cout << 1 << endl;
    }
    else
    {
        for (int i = 0; i < n; i++)
        {
            if (i >= 1)
            {
            int temp = b[i - 1];
            b[i - 1] = b[i];
            b[n - 1] = temp;
            }
            else
            {
                int temp = b[n - 1 + i];
                b[n - 1 + i] = b[i];
                b[i] = temp;
            }
            
            for (int j = 0; j < n; j++)
                if (b[j] != a[j])
                    k++;
            ch.push_back(k);
            k = 0;
        }
        sort (ch.begin(), ch.end());
        cout << ch[0];
    }
    return 0;
}
пример

2 массива
8 4 2 5
2 2 5 5
выход
2
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2014, 18:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Циклический сдвиг. Необходимо так сдвинуть массив B, чтобы количество различающихся индексов было минимальным (C++):

Вывести файл на экран, чтобы в каждой строке было не больше 40 символов, и количество строк было минимальным - C++
Дано файл f. Вывести этот файл на экран так что бы в каждой строчке было не больше, чем 40 символов и количество строк было минимальным.

Определить, в каком доме необходимо установить АТС, чтобы расстояние до всех телефонов было минимальным - C++
В поселке N домов, расположенных вдоль дороги с одной стороны на равных расстояниях. В деревне проводят телефонную связь.Указано , сколько...

Как происходит циклический сдвиг (как сдвинуть элементы в массиве) - C++
Задан массивы действительных чисел а1, а2,…,а20. Сдвинуть циклическим сдвигом все его элементы так, чтобы минимальный элемент стоял на...

Удалить из записи числа указанное количество цифр так, чтобы полученное число было максимальным - C++
Написать программу, которая для заданного натурального числа удаляет из записи числа указанное количество цифр так, чтобы полученное число...

Массив: Соединить точки замкнутой самонепересекающейся ломаной так, чтобы периметр полученного многоугольника был минимальным - C++
Здравствуйте!! Такая проблема, не могу придумать алгоритм для решения следующей задачи, прощу подскажите, у кого есть какие идеи: В...

Одномерный массив. Циклический сдвиг вправо - C++
Дан массив A размера N и целое число K (1 ≤ K ≤ 4, K &lt; N). Осущест- вить циклический сдвиг элементов массива вправо на K позиций (при...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2014, 18:08
Привет! Вот еще темы с ответами:

Одномерный массив. Циклический сдвиг влево - C++
Дан массив A размера N и целое число K (1 ≤ K ≤ 4, K &lt; N). Осущест- вить циклический сдвиг элементов массива влево на K позиций (при этом...

Выполнить циклический сдвиг массива на заданное количество столбцов - C++
Дан двумерный массив размерностью N x M, заполненный случайными числами из диапазона от 0 до 100. Выполнить циклический сдвиг массива на...

Выполнить циклический сдвиг двумерного массива на заданное количество столбцов - C++
Дан двумерный массив размерностью N x M, заполненный случайными числами из диапазона от 0 до 100. Выполнить циклический сдвиг массива на...

Найти точку на плоскости, чтобы максимально расстояние от нее до заданных прямых было минимальным - C++
Всем привет, есть задача, которая в общем смысле формулируется так : у нас есть N прямых от 2 до 100, есть их уравнения в виде ax+by+c...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru