На сайте в режиме реального времени публикуются решения контестных задач сервиса Codeforces.
Загружайте свои решения( здесь ) прямо на сайте. Подробнее. Жду ваших решений
 

По разделам

 

Задача Series 39


Дано целое число K, а также K наборов ненулевых целых чисел.
Каждый набор содержит не менее трех элементов, признаком его завершения является число 0. Найти количество пилообразных наборов (определение пилообразного набора дано в задании Series23).

Код (C/C++)

#include <stdio.h>
int main(void)
{
    int k;
    printf("K:");
    scanf("%i", &k);
 
    int ki,a=1,a1,a2,count=0;
    for (ki=1; ki<=k; ++ki){        printf(">");
       scanf("%i", &a1);
       printf(">");
       scanf("%i", &a);
       int check=1;
       while(a!=0){
            a2=a1;
            a1=a;
            printf(">");
            scanf("%i", &a);
            if (!(((a2<a1) && (a1>a)) || ((a2>a1) && (a1<a))) && (a!=0) ) check=0;
        }
        if (check)  count+=1;
    }
    printf("%i\n",count);
    return 0;
}

Код (Python)

import random

K = random.randrange(1,9)
print("K = ",K)

count_saw = 0
for i in range(0,K):
    x_prev = random.randrange(1,10)
    x_curr = random.randrange(x_prev+1,x_prev+11)
    print(x_prev,end="; ")
    print(x_curr,end="; ")
    k = -1
    saw = 0
    i = 2
    while True:
        if k == 1:
            y = list(range(x_curr-1,x_curr+11))
            y.append(0)
            #x_next = random.randrange(x_curr-1,x_curr+11)
            x_next = random.choice(y)
        else:
            #x_next = random.randrange(x_curr-10,x_curr+1)
            y = list(range(x_curr-10,x_curr+1))
            y.append(0)
            x_next = random.choice(y)
        k *= -1
        print(x_next,end="; ")
        if x_next == 0:
            break

        if saw == 0:
            if not ((x_prev < x_curr and x_curr > x_next) \
               or (x_prev > x_curr and x_curr < x_next)):
                saw = i
        x_prev = x_curr
        x_curr = x_next
        i += 1
        
    print()
    if saw == 0:
        print("saw: ", saw)
        count_saw += 1
    else:
        print("not saw: ", saw)
    print()
print("Number of saws: ", count_saw)
									

Код (Pascal)

program Series39;
var
  K,Ki,A,A1,A2,Count:Integer;
  Check:Boolean;
begin
 Write('K: ');
 Readln(K);
 for Ki:=1 to K do
  begin
   Write('A: ');
   Readln(A1);
   Write('A: ');
   Readln(A);
   Check:=True;
   repeat
    A2:=A1;
    A1:=A;
    Write('A: ');
    Readln(A);
    if  not (((A2<A1) and (A1>A)) or ((A2>A1) and (A1<A))) and (A<>0) then Check:=False;
   until A=0;
    Writeln('---');
   If Check then Count:=Count+1;
  end;
  Writeln(Count);
end.
									




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

Комментарии

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