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

Задача ЕГЭ

23.08.2012, 17:07. Показов 2518. Ответов 1
Метки нет (Все метки)

Здравствуйте! Имеется задача C4 из ЕГЭ:
Задача
На вход программе подаются сведения о номерах школ учащихся, участвовавших в олимпиаде. В первой строке сообщается количество учащихся N, каждая из следующих N строк имеет формат:
<Фамилия> <Инициалы> <номер школы>
где <Фамилия> – строка, состоящая не более чем из 20 символов, <Инициалы> – строка, состоящая из 4-х символов (буква, точка, буква, точка), <номер школы> – не более чем двузначный номер. <Фамилия> и <Инициалы>, а также <Инициалы> и <номер школы> разделены одним пробелом. Пример входной строки:
Иванов П.С. 57
Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран информацию, из какой школы было меньше всего участников (таких школ может быть несколько). При этом необходимо вывести информацию только по школам, пославшим хотя бы одного участника. Следует учитывать, что N>=1000.

Есть ее решение на языке Pascal:
Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const LIM = 99; {т.к номер школы - не более чем двузначный номер}
var C:array[1..LIM] of integer;
  i, p, N, k, r, Min: integer;
  s:string;
begin
for k:=1 to 99 do C[k]:=0;
readln(N);
for i:=1 to N do begin
 readln(s); { читаем очередную строку }
  { выделяем часть после второго пробела }
 p := Pos(' ', s);
 Delete(s, 1, p+5);
  { определяем номер школы k }
 Val(s, k, r);
 C[k] := C[k] + 1; { увеличиваем счетчик k-ой школы }
end;
Min := N;
for k:=1 to LIM do
 if (C[k] <> 0) and (C[k]<Min) then Min := C[k];
for k:=1 to LIM do
 if C[k] = Min then writeln(k);
end.

Нужно переписать эту программу на языке Java, как можно более эффективную. Самое начало у меня получилось, дальше не знаю, что делать.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.io.*;
public class Example1 {
    public static void main(String[] args) throws IOException {
        int k = 99; //Максимальное количество школ.
        //Ввод N учащихся.
        BufferedReader input1 = new BufferedReader (new InputStreamReader(System.in));
        int N = Integer.parseInt(input1.readLine());
        //Ввод N строк.
        for (int i = 1; i < N; i++) {
        BufferedReader input2 = new BufferedReader (new InputStreamReader(System.in));
        String s = input2.readLine();
        int C[] = new int[k];
    }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.08.2012, 17:07
Ответы с готовыми решениями:

Задача ЕГЭ
Всем привет ,на егэ была такая задача №19 ,подскажите решение. пенсионный фонд владеет ценными...

Задача С5 по ЕГЭ
Доброго времени суток! Помогите решить задачу. Я незнаю как это решается. Так что, если можно мне...

Задача из ЕГЭ
Написать алгоритм подсчета количества уникальных элементов в целочисленном массиве длины N&lt;1000...

Задача по ЕГЭ
Помогите решить задачу. Для автоматизированной системы управления движением городских...

1
51 / 62 / 16
Регистрация: 18.10.2010
Сообщений: 240
23.08.2012, 17:43 2
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
import java.io.*;
 
public class Test {
 
    public static void main(String[] args) throws IOException {
        BufferedReader r = new BufferedReader(new InputStreamReader(System.in));        
        int[] school = new int[100];        
        String line = r.readLine();
        while (line != null) {
            school[Integer.parseInt(line.split(" ")[2])]++;
            line = r.readLine();
        }
        line = "";
        int min = 0;
        for (int i = 0; i < 100; i++) {
            if (school[i] > 0) {
                if (min == 0 || school[i] < min) {
                    min = school[i];
                    line = i + " ";
                } else if (school[i] == min)
                    line += i + " ";
            }
        }
        System.out.print(line);
        r.close();
    }
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2012, 17:43
Помогаю со студенческими работами здесь

задача из егэ
ПОМОГИТЕ ПРОШУ ФОТО ВНИЗУ

Задача по егэ
Помогите дописать задачку пожалуйста. Не могу вывести все элементы List. На вход программе в...

Задача части С ЕГЭ
почта lybimaylenka@mail.ru. Нужна помощь. В трапеции АВСТ основания ВС и АТ равны...

Егэ информатика 27 задача
Спрошу коротко , почему у меня ошибка на 18 строчке ? #include &lt;iostream&gt; using namespace std ;...


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

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

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