1581 Timus answer/Решение задачи 1581


№1581
http://acm.timus.ru/problem.aspx?space=1&num=1581
ЖМИ ДАЛЕЕ>>>

РЕШЕНИЕ [Pascal] :

var
    N, X, pX, nX, I: integer;
begin
    readLn (N);
    read (pX);
    nX := 1;
    for I := 2 to N do
        begin
            read (X);
            if (X = pX)
            then
                inc (nX)
            else
                begin
                    write (nX, ' ' , pX, ' ');
                    nX := 1;
                end;
            pX := X;
        end;
    write (nX, ' ', pX, ' ');
end.



РЕШЕНИЕ [Java] :

import java.util.Scanner;
 
public class t1581 {
 
 public static void main(String[] args) {
  Scanner input = new Scanner(System.in);
 
  while (input.hasNext()) {
   int N = input.nextInt() - 1;
   int num = input.nextInt();
   int count = 1;
   if (N == 0) {
    System.out.println(count + " " + num);
    continue;
   }
    
   int nextNum = input.nextInt();
    
 
   while (N >= 0) {
    if (N != 0) {
     if (num == nextNum) {
      ++count;
     } else {
      System.out.print(count + " " + num + " ");
 
      num = nextNum;
      count = 1;
     }
    } else {
     System.out.print(count + " " + num + " ");
    }
 
    --N;
    if (N > 0) {
     nextNum = input.nextInt();
    }
   }
 
   System.out.println();
  }
 }
 
}

1581. Работа в команде

Ограничение времени: 1.0 секунды
Ограничение памяти: 64 МБ
Вася и Петя решили принять участие в командной олимпиаде по информатике. Но они слушали рассказы ветеранов спортивного программирования, а поэтому знали, что, помимо умения хорошо программировать, очень важна сыгранность участников. Поэтому они решили отрабатывать навыки работы в команде.
Вася написал на бумажке последовательность натуральных чисел и стал диктовать её Пете. Причём, для краткости, он диктует её так: сначала говорит количество подряд идущих одинаковых чисел, а затем говорит, что это за числа. Например, последовательность «1 1 2 3 3 3 10 10» он продиктует как «две единицы, одна двойка, три тройки, две десятки». Петя же, тоже для краткости, записывает вместо слов числа, которые говорит Вася. В указанном примере Петя запишет на бумажку: «2 1 1 2 3 3 2 10».
Отработав этот навык, друзья решили ещё потренироваться в программировании и научить компьютер преобразовывать последовательность Васи в последовательность Пети.

Исходные данные

В первой строке находится целое число N — количество чисел, записанных Васей (1 ≤ N ≤ 1000). Во второй строке через пробел записаны эти числа. Все числа целые, положительные и не превосходят 10.

Результат

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

Пример

исходные данныерезультат
8
1 1 2 3 3 3 10 10
2 1 1 2 3 3 2 10
Автор задачи: Алексей Самсонов
Источник задачи: XIV Открытое командное первенство школьников Свердловской области по программированию