0 / 0 / 0
Регистрация: 02.03.2018
Сообщений: 8
1

Количество перемещений в массиве

03.03.2018, 19:22. Показов 1876. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В первой строке записано целое положительное число n (1 ≤ n ≤ 100) — количество блоков, в которых записан файл.
Во второй строке следует последовательность из n различных целых положительных чисел a1, a2, ..., an (1 ≤ ai ≤ n), где ai-е равно номеру блока файла, который расположен на жестком диске в позиции i от начала
Выведите количество перемещений считывающей головки жесткого диска, чтобы прочитать весь файл целиком. Изначально считывающая головка расположена в начале жесткого диска (то есть над самым левым из блоков в их записи во входных данных).
Пример:
входные данные
5
4 3 1 5 2
выходные данные
11

вот мой код, считает неверно( подскажите, что исправить

Java
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
public class Solution {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int[] chisla = new int[a];
        for(int i=0;i < chisla.length; i++){
            chisla[i]=scanner.nextInt();
        }
 
 
        int indexofmin=0;
        for(int i=0;i<chisla.length;i++) {
          if(chisla[i]<chisla[indexofmin]){
              indexofmin=i;
        }}
 
        int min=2;
        int sum=indexofmin;
        int count=0;
        System.out.println(sum);
        for (int i=0; i<chisla.length;i++) {
                if(chisla[i]==min) {
                    if (indexofmin > i) count = indexofmin - i;
                    else count = i - indexofmin;
                    indexofmin = i;}
                    sum = sum + count;
                min++;
                }
 
 
        System.out.println(sum);}}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2018, 19:22
Ответы с готовыми решениями:

Количество элеметов в массиве
Привет всем! Скажите, пожалуйста, возможно ли создать массив с long количеством элементов. ...

Минимальное количество перемещений
За один раз Вася может поменять местами два шампура. Помогите Васе подсчитать наименьшее...

Выведите минимальное количество перемещений
3. Шашлыки Имя входного файла input.txt Имя выходного файла output.txt Максимальное время...

Найти количество перемещений первого элемента заданного массива
Помогите пожалуйста найти количество перемещений первого элемента Я не понимаю , как написать это...

8
Am I evil? Yes, I am!
Эксперт PythonЭксперт Java
19203 / 10925 / 2915
Регистрация: 21.10.2017
Сообщений: 23,115
08.03.2018, 15:35 2
alena01, можно вот так. Ввод данных на твое усмотрение - файл, консоль...
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package ru.ismoke;
 
public class Main {
 
    public static void main(String[] args) {
        int[] blocks = {4, 3, 1, 5, 2};
        int nextPosition, count = 0, position = 0;
 
        for (int i = 1; i <= blocks.length; i++) {
            nextPosition = findPosition(blocks, i);
            count += (Math.abs(position - nextPosition));
            position = nextPosition;
        }
        System.out.println("Need moves: " + count);
    }
 
    private static int findPosition(int[] blocks, int block) {
        for (int i = 0; i < blocks.length; i++) {
            if (blocks[i] == block) return i;
        }
        return 0;
    }
}
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
08.03.2018, 17:19 3
каким образом из этих входных данных получается 11?
0
Am I evil? Yes, I am!
Эксперт PythonЭксперт Java
19203 / 10925 / 2915
Регистрация: 21.10.2017
Сообщений: 23,115
08.03.2018, 17:23 4
Сколько "шагов" по 1 элементу сделала головка
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
08.03.2018, 17:34 5
ну т.е. это сумма разностей. Никак не получается 11
0
Am I evil? Yes, I am!
Эксперт PythonЭксперт Java
19203 / 10925 / 2915
Регистрация: 21.10.2017
Сообщений: 23,115
08.03.2018, 17:42 6
Да получается все! Т.е. башка следует по пути 1-2-3-4-5 начиная с 0. "Наматывает" 11 шагов. Я сам сначала не сразу понял откуда они взялись
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
08.03.2018, 18:13 7
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Да получается все!
а, да, вроде получается
0
0 / 0 / 0
Регистрация: 02.03.2018
Сообщений: 8
13.03.2018, 19:10  [ТС] 8
Спасибо большое) я уже реализовала немного по-другому)
0
75 / 61 / 29
Регистрация: 20.04.2015
Сообщений: 415
13.03.2018, 19:21 9
Arrays.sort сделай дефрагментацию HDD и получишь меньше ходов головки)
0
13.03.2018, 19:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2018, 19:21
Помогаю со студенческими работами здесь

В массиве записаны оценки, найти количество пятерок, количество четверок, количество троек и количество двоек
В массиве записаны оценки по иностранному языку каждого из 22 учеников класса. Определить...

Определить количество пятерок, количество четверок, количество троек и количество двоек в массиве оценок
В массиве записаны оценки по иностранному языку каждого из 22 учеников класса.Определить количество...

Найти количество четных чисел в первом массиве и количество нечетных чисел во втором массиве
Даны два массива целых чисел А (15) и В (15). Найти количество четных чисел в первом массиве и...

Массив: Найти в одномерном массиве элемент, который наибольшее количество раз повторяется в массиве
программу нужно сделать в PascalABC.Найти в одномерном массиве элемент,который наибольшее кол-во...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru