По разделам



Задача Minmax 28


Дано целое число N и набор из N целых чисел, содержащий только нули и единицы. Найти номер элемента, с которого начинается самая
длинная последовательность единиц, и количество элементов в этой последовательности. Если таких последовательностей несколько, то вывести
номер последней из них. Если единицы в исходном наборе отсутствуют,
то дважды вывести 0.

Код (C/C++)

#include <stdio.h>
int main(void)
{
    int b=2,num=0,numi=1,maxnum=0,maxi=0,n,i;
 
 
    printf("N:");
    scanf("%i", &n);
    for (i=1; i<=n; ++i){
        printf("%i>",i);
        scanf("%i", &b);
 
        if(b==1) {
            ++num;
            maxi=numi;
        }
        else{
            if (num>=maxnum) maxnum=num;
            numi=i+1;
            num=0;
        }
    }
    if ((num>=maxnum)&&(b==1)){
        maxnum=num;
        maxi=numi;
    }
    printf("%i %i\n",maxi,maxnum);
    return 0;
}

Код (Python)

import random

N = random.randrange(2,20)
print("N = ",N)

x_prev = random.randint(0,1)
print(x_prev,end="; ");
if x_prev == 1:
    largest = 1
    temp_largest = 1
    idx = 0
else:
    largest = 0
    temp_largest = 0
    idx = -1
for i in range(1,N):
    x = random.randint(0,1)
    print(x,end="; ");
    if x == x_prev:
        temp_largest += 1
    else:
        if x == 0 and temp_largest >= largest:
            largest = temp_largest
            idx = i - largest
        temp_largest = 1
    x_prev = x
if x == 1 and temp_largest >= largest:
    largest = temp_largest
    idx = N - largest
if idx != -1:
    print("\nLength of Largest Series of 1s:",largest)
    print("Index:",idx)
else:
    print("\n0; 0")
									

Код (Pascal)

program Minmax28;
 
var
  N,i,Num,Numi,MaxNum,Maxi:Integer;
  B:byte;
begin
  B:=5;
  Num:=0;
  Numi:=1;
  MaxNum:=0;
  Write('N:');
  Readln(N);
  for i:=1 to N do
   begin
     Write(i,' число:');
     Readln(B);
 
     if B=1 then 
      begin
       inc(Num);
       Maxi:=Numi;
      end
     else
      begin
       if Num>=MaxNum then MaxNum:=Num;
        Numi:=i+1;
        Num:=0;
      end;
   end;
   if (Num>=MaxNum) and (B=1) then
       begin
        MaxNum:=Num;
        Maxi:=Numi;
       end;
 
   Writeln(Maxi,' ',MaxNum);
end.
									




Minmax. Абрамян
Minmax 1 Просмотров: 38
Minmax 2 Просмотров: 26
Minmax 3 Просмотров: 21
Minmax 4 Просмотров: 17
Minmax 5 Просмотров: 27
Minmax 6 Просмотров: 35
Minmax 7 Просмотров: 32
Minmax 8 Просмотров: 19
Minmax 9 Просмотров: 24
Minmax 10 Просмотров: 18
Minmax 11 Просмотров: 46
Minmax 12 Просмотров: 32
Minmax 13 Просмотров: 34
Minmax 14 Просмотров: 24
Minmax 15 Просмотров: 28
Minmax 16 Просмотров: 21
Minmax 17 Просмотров: 26
Minmax 18 Просмотров: 25
Minmax 19 Просмотров: 22
Minmax 20 Просмотров: 34
Minmax 21 Просмотров: 32
Minmax 22 Просмотров: 20
Minmax 23 Просмотров: 24
Minmax 24 Просмотров: 30
Minmax 25 Просмотров: 17
Minmax 26 Просмотров: 38
Minmax 27 Просмотров: 29
Minmax 28 Просмотров: 26
Minmax 29 Просмотров: 29
Minmax 30 Просмотров: 28

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться