Official
B - How many? Editorial by blackyuki
\(a+b+c \leq S\) を満たす \((a,b,c)\) の組を全探索し、それぞれ \(a \times b \times c \leq T\) を満たすかどうか判定することを考えます。
これは、for文などを用いて以下のように実装することができます。
実装例 (C++)
#include<bits/stdc++.h>
using namespace std;
int main(){
int S, T; cin >> S >> T;
int cnt = 0;
for(int a = 0; a <= S; a++){
for(int b = 0; a+b <= S; b++){
for(int c = 0; a+b+c <= S; c++){
if(a*b*c <= T) cnt++;
}
}
}
cout << cnt << endl;
}
実装例 (Python)
S, T = map(int, input().split())
res = 0
for a in range(S+1):
for b in range(S+1-a):
for c in range(S+1-a-b):
if a*b*c <= T:
res+=1
print(res)
bonus: \(0 \leq S,T \leq 10^{18}\)
posted:
last update: