Задачу по Pascal'u срочняк надо

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Sin3v, 15 Jan 2010.

  1. Sin3v

    Sin3v Banned

    Joined:
    16 Jul 2008
    Messages:
    11
    Likes Received:
    95
    Reputations:
    9
    Задача. Носки
    Имя входного файла: socks.in
    Имя выходного файла: socks.out
    Ограничения по времени: 2 секунды
    Ограничения по памяти: 64mb

    В куче лежат N носков, известно, что для каждого носка из кучи есть пара, но как всегда они перемешались. Какое минимальное количество носков нужно взять из кучи, чтобы среди взятых носков гарантированно нашлась хотя бы одна пара?
    Формат входных данных.
    Входного файла содержит одно целое положительное число N, состоящий не более чем из 100 десятичных цифр – количество носков в куче.
    Формат выходных данных
    На единственной строке выходного файла введите одно целое число без ведущих нулей - ответ к задаче.







    Еще одна

    Задача. Муравьи
    Имя входного файла: ants.in
    Имя выходного файла: ants.out
    Ограничения по времени: 2 секунды
    Ограничения по памяти: 64mb

    N Муравьев в момент времени 0 начинают одновременно двигаться по горизонтальному отрезку со скоростью 1см в секунду в заданных направлениях . Если 2 муравья сталкиваются , то они мгновенно разворачиваются и двигаются с прежней скоростью в противоположенном направлении. Муравей, дошедший до края отрезка падает. Определите. Через сколько секунд упадет последний муравей.
    Формат входных данных
    На первой строке входного файла дано 2 первых числа: N – количество муравьев (1<= N <=10). l. Длина отрезка в сантиметрах (2 <= l. <= 10^6). На второй строке расположены N через i-e число – расстояние в сантиметрах от левого края до i-го муравья (расстояние целое число в промежутке от 1 до l. -1) Третья строка также содержит N чисел. I-e число равно 0 если i-й муравей начинает двигаться и l. Если вправо. Числа в строках разделены пробелам.
    Формат выходных данных.
    На e. десятичной строке выходного файла выведите одно целое число – ответ к задаче.




    и еще))

    Задача. Велосипедист
    Имя входного файла: biker.in
    Имя выходного файла: bikep.out
    Ограничения по времени: 2 секунды
    Ограничения по памяти: 64mb

    Велосипедист измеряет свою скорость раз в минуту всего N раз. Измерение проводятся в начале каждой минуты. Зная результат измерений, найдите его среднюю скорость за время, прошедшее от первого до последнего измерения. Считайте, что между моментами измерений скорость изменяется строго равномерно.
    Средняя скорость – это расстояние, деленное на время, за которое это расстояние выло пройдено.
    Формат входных данных
    На первой строке входного файла дано целое число N – количество замеров (1<= N <= 10^5).
    На второй строке расположены N числа: i-e числа - мгновенная скорость велосипедиста в начале i-й минуты(в метрах в секунду). Скорости – целые числа в промежутке от 0 до 100. Числа в строке разделены пробелам.
    Формат выходных данных.
    На единственной строке файла выведите одно вещественное число, округленное до двух знаков после десятичной точки – ответ к задаче в метрах в секунду.
     
    #1 Sin3v, 15 Jan 2010
    Last edited: 15 Jan 2010
    2 people like this.
  2. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Нехилая такая кучка :D
    Code:
    function Div2(inS: string):string;
    var outS:string;
        i:integer;
        d:integer;
        r:integer;
    begin
    outS := '';
    r :=0;
    for i:=1 to length(inS) do
      begin
      d:=strToInt(inS[i]);
      d:= d + r;
      if d mod 2 = 0 then
         r := 0
      else
         r := 10;
      outS := outS + intToStr(trunc(d/2));
      end;
    result := outS;
    end;
    
    function Inc(inS:string):string;
    var d:integer;
        r:integer;
        i:integer;
        outS:string;
    begin
    r:=1;
    for i:=length(inS) downto 1 do
      begin
      d:=strToInt(inS[i]);
      d:= d + r;
      if d <= 9 then
        begin
         r := 0;
         outS := intToStr(d) + outS;
        end
      else
         outS := '0' + outS;
      end;
    if r=1 then
      outS := '1'+outS;
    result:=outS;
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var outS:string;
    begin
    outS := Div2('758346754265436243257821647832674532287478');
    outS := Inc(outS);
    end;
     
  3. Dive_n0ll

    Dive_n0ll New Member

    Joined:
    17 Oct 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Что-то понять не могу. Можешь объяснить что где. Код нужен под компилятор TURBO PASCAL 7.1.

    Имя входного файла: socks.in
    Имя выходного файла: socks.out
    Ограничения по времени: 2 секунды
    Ограничения по памяти: 64mb
     
    #3 Dive_n0ll, 15 Jan 2010
    Last edited: 15 Jan 2010
  4. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Во-первых нужно сразу говорить под какой компилятор нужен код.
    Во-вторых, разберись в коде сам.

    PS И какие 64mb ? В турбопаскале адресуемое простарнство - 64кб :)