По разделам



Задача Series 40


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

Код (C/C++)

#include <bits/stdc++.h>

using namespace std;


int main()
{

    int k, n, n1, n2, j;
    bool t = 1;
    cin >> k;
    for(int i = 0; i < k; ++i){
        cin >> n1 >> n2;
        n = 1; j = 1, t = 1;
        while(n){
            cin >> n;
            ++j;
            if(!n)
                break;
            else if(((n1 - n2) * (n2 - n)) >= 0){
                t = 0;
                cout << j << endl;
                break;
            }
            n1 = n2;
            n2 = n;
        }
        if(t)
            cout << j << endl;
    }
    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))
            if i > 2:
                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))
            if i > 2:
                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: ", i)
        count_saw += 1
    else:
        print("not saw: ", saw)
    print()
print("Number of saws: ", count_saw)
									

Код (Pascal)

program Series40;
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);
   Count:=1;
   Check:=True;
   repeat
    A2:=A1;
    A1:=A;
    Write('A: ');
    Readln(A);
    if Check then
     begin
      inc(Count);
      if  not (((A2<A1) and (A1>A)) or ((A2>A1) and (A1<A))) and (A<>0) then
       Check:=False;
     end;
   until A=0;
   Writeln('---');
   Writeln(Count);
  end;
end.
									




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

Комментарии

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