Saharok00711
25.02.2021 09:36

Петя играет в онлайн-игру, одной из особенностей игры является возможность собрать коллекцию уникальных карт с героями игры. Для того, чтобы получить карту, нужно зайти на специальную страницу.

Петя заходил на эту страницу n раз в течение дня. Однако он заметил, что на этой странице не всегда появляется новая карта. Как выяснилось, новая карта появляется на странице через x секунд после того, как Петя забрал предыдущую карту.

По данному числу x и списку моментов времени, когда Петя заходил на страницу, определите, сколько карт он смог собрать.
Входные данные
Первая строка содержит числа n и x (1≤n≤100, 1≤x≤86400). Следующие n строк содержат моменты времени, когда Петя заходил на страницу. Время задано в формате часы:минуты:секунды, часы, минуты и секунды заданы двумя цифрами. Все времена различны, отсортированы по возрастанию и относятся к одним суткам (от 00:00:00 до 23:59:59).

Выходные данные
Выведите одно число — число карт, которые собрал Петя за день.
Пример
входные данные
5 300
12:00:00
12:04:30
12:05:00
12:15:32
12:15:33
выходные данные найти ошибек вылает непраивльный ответ на 2 тесте
вот мой код
#include <bits/stdc++.h>
using namespace std;
int main ()
{
long long n,m,i,j,x,k=0;
cin»n»x;
char z;
long long a[n],b[n],c[n],h[n];
for(i=0; i<n; i++)
{
cin»a[i]»z»b[i]»z»c[i];
h[i]=0;
h[i]=((a[i]*60)*60)+(b[i]*60)+c[i];
}
i=0;
j=0;
while(i<n-1)
{
while(h[j]-h[i]<300 and j<n-1)
{j++;}
k++;
i=j;
}
if(n==1)
{
cout«"1";
return 0;
}
cout«k;
}​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Попова1234
20.02.2020 15:12

В примере выше логическим выражением является n < 100. Если оно возвращает истину, то выполнится строчка кода b = n + a. Если логическое выражение ложно, то выражение b = n + a не выполнится.

Данный пример вырван из контекста и сам по-себе не является рабочим. Полная версия программы могла бы выглядеть так:

b = 0

a = 50

n = 98

if n < 100:

b = n + a

print(b)

Последняя строчка кода print(b) уже не относится к условному оператору, что обозначено отсутствием перед ней отступа. Она не является вложенной в условный оператор, значит, не принадлежит ему.

Поскольку переменная n равна 98, а это меньше 100, то b станет равной 148-ми. Это значение будет выведено на экран. Если переменная n изначально была бы связана, например, со значением 101, то на экран был бы выведен 0. При n, равной 101, логическое выражение в заголовке условного оператора вернуло бы ложь. Значит, тело не было бы выполнено, и переменная b не изменилась бы.

Структуру программы можно изобразить следующим образом:

Основная ветка программы выполняется всегда, а вложенный код лишь тогда, когда в темно-зеленой строчке, обозначающей заголовок условного оператора, случается истина.

Для небольших программ иногда чертят так называемые блок-схемы, отражающие алгоритм выполнения. В языке блок-схем определенные конструкции обозначаются своими фигурами. Так блок действий обозначается прямоугольником, а логическое выражение – ромбом. Для кода выше блок-схема может выглядеть так:

Блок-схема оператора if

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

Блок-схема конструкции if-else

В случае возврата логическим выражением False поток выполнения программы не возвращается сразу в основную ветку. На случай False существует другой вложенный код, отличный от случая True. Другими словами, встретившись с расширенной версией условного оператора, поток выполнения программы не вернется в основную ветку, не выполнив хоть какой-нибудь вложенный код.

В языках программирования разделение на две ветви достигается с добавления блока else, получается так называемое if–else (если-иначе). Синтаксис выглядит примерно так:

if логическое_выражение {

выражение 1;

выражение 2;

}

else {

выражение 3;

}

Если условие при инструкции if оказывается ложным, то выполняется блок кода при инструкции else. Ситуация, при которой бы выполнились обе ветви, невозможна. Либо код, принадлежащий if, либо код, принадлежащий еlse. Никак иначе. В заголовке else никогда не бывает логического выражения.

Пример кода с веткой else на языке программирования Python:

tovar1 = 50

tovar2 = 32

if tovar1 + tovar2 > 99 :

print("99 рублей недостаточно")

else:

print("Чек оплачен")

Следует иметь в виду, что логическое выражение при if может выглядеть "нестандартно", т. е. не так просто, как a > b и тому подобное. Там может стоять просто одна переменная, число, слово True или False, а также сложное логическое выражение, когда два простых соединяются через логически И или ИЛИ.

a = ?

if a:

a = 1

Если вместо знака вопроса будет стоять 0, то с логической точки зрения это False, значит выражение в if не будет выполнено. Если a будет связано с любым другим числом, то оно будет расцениваться как True, и тело условного оператора выполнится. Другой пример:

a = 5 > 0

if a:

print(a)

Здесь a уже связана с булевым значением. В данном случае это True. Отметим, что в выражении a = 5 > 0 присваивание выполняется после оператора сравнения, так что подвыражение 5 > 0 выполнится первым, после чего его результат будет присвоен переменной a. На будущее, если вы сомневаетесь в последовательности выполнения операторов, используйте скобки, например так: a = (5 > 0).

Третий пример:

if a > 0 and a < b:

print(b - a)

Тут, чтобы вложенный код выполнился, a должно быть больше нуля и одновременно меньше b. Также в Питоне, в отличие от других языков программирования, позволительна такая сокращенная запись сложного логического выражения:

if 0 < a < b:

print(b - a)

0,0(0 оценок)
Ответ:
ЯковПервый
03.09.2020 21:43
1. 2 Массивы объявляются тем же оператором, что и обычные переменные
2. Не корректный вопрос: индекс - это обращения к определенному элементу массива, а у самого массива индекса нет. В вариантах ответа ничего похожего на это нет.
3. 4 Массивы заполняются теми же операторами, что и обычные переменные
4. 1 Есть такой ввода в бейсике - конструкция READ DATA
5. 1 Выведется четвертый элемент массива, т.к. нумерация идет с нуля, и первый имеет номер 0, второй - 1, третий - 2, а четвертый - номер 3, который и запрашивается в выражении А(3)
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота