2-й этап Республиканской олимпиады по информатике 2022-2023


Есеп B. Қосынды, көбейтінді және төрт сан

Ограничение по времени:
1 second
Ограничение по памяти:
256 megabytes

Сізге $s$ және $p$ екі бүтін сандары берілген. Қосындысы $s$-тен және көбейтіндісі $p$-дан аспайтын бүтін оң төрттіктердің санын табыңыз. Формальды түрде, бұл есепте сізге келесі екі шарт орындалатын $a, b, c, d$ бүтін оң төрттіктердің санын табу керек: 1. $a + b + c + d <= s$ 2. $a * b * c * d <= p$
Формат входного файла
Бірінші жолда $s$ және $p(1 <= s <= 500, 1 <= p <= 10^9)$ бүтін сандары берілген.
Формат выходного файла
Жалғыз жолға есептің жауабын шығарыңыз.
Система оценки
Бұл есеп 10 тесттен тұрады, әр тест 10 баллға бағаланады:
Примеры:
Вход
5 10
Ответ
5
Вход
10 15
Ответ
125
Замечание
Бірінші мысалдағы лайықты төрттіктер: ($1,1,1,1$), ($2,1,1,1$), ($1,2,1,1$), ($1,1,2,1$), ($1,1,1,2$). ( Parassat Kyzyrkanov )
посмотреть в олимпиаде

Комментарий/решение:

  1
2023-10-31 10:37:45.0 #

import sys

input=sys.stdin.readline

m=0

a,b=map(int,input().split())

for i in range(1,a+1):

for j in range(1,a+1):

for k in range(1,a+1):

for q in range(1,a+1):

if i+j+k+q<=a and i*j*k*q<=b:

m+=1

print(m)

  0
2023-11-21 17:16:37.0 #

n,m=map(int,input().split())

z=0;

for i in range(1,n+1):

for j in range(1,n+1):

for k in range(1,n+1):

for w in range(1,n+1):

if i+j+k+w<=n and i*j*k*w<=m:

z+=1;

print(z);

  0
2023-11-23 16:34:37.0 #

s,p= map(int, input().split())

res=0

for a in range(1,s):

for b in range(1,s):

if a+b>=s or a*b>p:

break

for c in range(1,s):

if a+b+c>=s or a*b*c>p:

break

d=min(s-a-b-c, p//(a*b*c))

res+=d

print(res)

  0
2023-12-05 10:15:20.0 #

s,p = map(int,input().split())

q = 0

for a in range(1,s+1):

for b in range(1,s+1):

for c in range(1,s+1):

for d in range(1,s+1):

if (a+b+c+d <= s) and (a*b*c*d <= p):

q += 1

print(q)