Если i больше 0 делаем 1) i:= i(=5) - 1 = 5-1= 4 2) s:= 0+4(получилось в 1 действии)= 4 i больше 0, повторяем процедуру 1) i:= i(=4 из 1-ого решения) - 1 = 4-1= 3 2) s:= 4( из 1-ого решения) +3= 7 И еще раз 1) i:= i(=3 из 2-ого решения) - 1 = 3-1= 2 2) s:= 7( из 2-ого решения) +2= 7 + 2 = 9 Снова 1) i:= i(=2 из 3-ого решения) - 1 = 2-1= 1 2) s:= 9( из 3-ого решения) +1= 9+1 = 10 И еще 1) i:= i(=1 из 4-ого решения) - 1 = 1-1= 0 2) s:= 10( из 4-ого решения) +0= 10+0 = 10 Так как i= 0, а не больше 0, то алгоритм закончен S= 10
Для начала давай посмотрим на года.
1. Если разница между годом рождения и текущим годом больше 16, мы однозначно можем сказать, что человеку уже есть 16.
2. Если разница между годом рождения и текущим годом меньше 16, мы однозначно можем сказать, что человеку ещё нет 16.
Если разница между годом рождения и текущим годом равна 16, мы можем сказать, что у человека день рождения в этом году. Давай глянем на месяц.
1. Если текущий месяц больше месяца рождения, человеку уже есть 16.
2. Если текущий месяц меньше месяца рождения, человеку ещё нет 16.
Если у человека день рождения в этом месяце, давай точно так же глянем на дни.
В итоге мы уже точно знаем, когда у человека день рождения.
Код решения
#include <bits/stdc++.h>
using namespace std;
int main() {
int d1, m1, y1, d2, m2, y2;
cin >> d1 >> m1 >> y1 >> d2 >> m2 >> y2;
if (y2 - y1 > 16) {
cout << "YES" << endl;
return 0;
} else if (y2 - y1 < 16) {
cout << "NO" << endl;
return 0;
}
if (m2 > m1) {
cout << "YES" << endl;
return 0;
} else if (m2 < m1) {
cout << "NO" << endl;
return 0;
}
if (d2 < d1) {
cout << "NO" << endl;
return 0;
}
cout << "YES" << endl;
return 0;
}
Файл решения прикреплён.