Объяснение:
a1 = str(input())
a2 = str(input())
a3 = str(input())
if a1=="a=b":
if a2=="a>c":
print("cab")
elif a2=="a<c":
print("abc")
elif a2=="a=c":
if a1=="a>b":
print("bac")
elif a1=="a<b":
print("acb")
elif a1=="a=b":
elif a3=="b=c":
print("cba")
else:
if a3 == "b>c":
elif a3== "b<c":
if a2== "a>c":
print("bca")
if a2 == "a>c":
if a3 == "b<c":
elif a3 == "b>c":
Решал я через односвязный линейный список.
Сделал фильтры ввода данных (программа завершается если поступили некорректные данные)
Код программы:
#include <stdio.h>
#include <locale>
#include <cstdio>
#include <cstdlib>
using namespace std;
typedef struct TIME {
int h;
int m;
int s;
struct TIME* next;
};
TIME *vvod() {
TIME* data;
data = new TIME();
printf("Часы = ");
scanf("%d", &data->h);
if (data->h > 23 || data->h < 0) {
printf("Некорректный ввод времени");
exit (1);
}
printf("Минуты = ");
scanf("%d", &data->m);
if (data->m > 59 || data->m < 0) {
exit(1);
printf("Секунды = ");
scanf("%d", &data->s);
if (data->s > 59 || data->s < 0) {
data->next = NULL;
return data;
void print(TIME *begin) {
TIME* temp;
temp = begin;
while (temp != NULL) {
printf("%d:%02d:%02d\n", temp->h, temp->m, temp->s);
temp = temp->next;
int main()
{
setlocale(LC_ALL, "Russian");
int n, i, max, c = 0, d = 0;
bool r;
TIME *begin, *krug, *temp;
printf("Введите количество кругов:\n");
scanf("%d", &n);
if (n <= 0) {
printf("Некорректный ввод количества кругов");
return 1;
printf("\n");
printf("Введите время начала круга:\n");
begin = vvod();
for (i = 0; i < n; i++) {
printf("Введите время %d круга", i + 1);
krug = vvod();
r = temp->h <= krug->h && temp->m <= krug->m && temp->s < krug->s || temp->h < krug->h || temp->h == krug->h && temp->m < krug->m ;
if (r == 0) {
printf("Неккоректный ввод времени круга");
temp->next = krug;
temp = krug;
print(begin);
max = 0;
for(i = 0; i < n;i++) {
c = temp->h * 3600 + temp->m * 60 + temp->s;
if (temp == NULL) {
break;
d = temp->h * 3600 + temp->m * 60 + temp->s;
if (d - c > max)
max = d - c;
printf("%d", max);
return 0;
Объяснение:
a1 = str(input())
a2 = str(input())
a3 = str(input())
if a1=="a=b":
if a2=="a>c":
print("cab")
elif a2=="a<c":
print("abc")
elif a2=="a=c":
print("abc")
elif a2=="a=c":
if a1=="a>b":
print("bac")
elif a1=="a<b":
print("acb")
elif a1=="a=b":
print("abc")
elif a3=="b=c":
if a2=="a>c":
print("cba")
elif a2=="a<c":
print("acb")
elif a2=="a=c":
print("abc")
else:
if a1=="a>b":
if a3 == "b>c":
print("cba")
elif a3== "b<c":
if a2== "a>c":
print("bca")
elif a2=="a<c":
print("bac")
elif a1=="a<b":
if a2 == "a>c":
print("cab")
elif a2=="a<c":
if a3 == "b<c":
print("abc")
elif a3 == "b>c":
print("acb")
Решал я через односвязный линейный список.
Сделал фильтры ввода данных (программа завершается если поступили некорректные данные)
Код программы:
#include <stdio.h>
#include <locale>
#include <cstdio>
#include <cstdlib>
using namespace std;
typedef struct TIME {
int h;
int m;
int s;
struct TIME* next;
};
TIME *vvod() {
TIME* data;
data = new TIME();
printf("Часы = ");
scanf("%d", &data->h);
if (data->h > 23 || data->h < 0) {
printf("Некорректный ввод времени");
exit (1);
}
printf("Минуты = ");
scanf("%d", &data->m);
if (data->m > 59 || data->m < 0) {
printf("Некорректный ввод времени");
exit(1);
}
printf("Секунды = ");
scanf("%d", &data->s);
if (data->s > 59 || data->s < 0) {
printf("Некорректный ввод времени");
exit(1);
}
data->next = NULL;
return data;
}
void print(TIME *begin) {
TIME* temp;
temp = begin;
while (temp != NULL) {
printf("%d:%02d:%02d\n", temp->h, temp->m, temp->s);
temp = temp->next;
}
}
int main()
{
setlocale(LC_ALL, "Russian");
int n, i, max, c = 0, d = 0;
bool r;
TIME *begin, *krug, *temp;
printf("Введите количество кругов:\n");
scanf("%d", &n);
if (n <= 0) {
printf("Некорректный ввод количества кругов");
return 1;
}
printf("\n");
printf("Введите время начала круга:\n");
begin = vvod();
temp = begin;
for (i = 0; i < n; i++) {
printf("\n");
printf("Введите время %d круга", i + 1);
printf("\n");
krug = vvod();
r = temp->h <= krug->h && temp->m <= krug->m && temp->s < krug->s || temp->h < krug->h || temp->h == krug->h && temp->m < krug->m ;
if (r == 0) {
printf("Неккоректный ввод времени круга");
return 1;
}
temp->next = krug;
temp = krug;
}
printf("\n");
print(begin);
temp = begin;
max = 0;
for(i = 0; i < n;i++) {
c = temp->h * 3600 + temp->m * 60 + temp->s;
temp = temp->next;
if (temp == NULL) {
break;
}
d = temp->h * 3600 + temp->m * 60 + temp->s;
if (d - c > max)
max = d - c;
}
printf("\n");
printf("%d", max);
printf("\n");
return 0;
}