1000000000 987654321 123456789
Lors de la saisie
A, B, C = map(int, input().split())
ans = (A * (A + 1) * B * (B + 1) * C * (C + 1) / 8) % 998244353
print(int(ans))
J'ai répondu comme ça, mais WA est sorti. Regarder les réponses AC d'autres personnes
A, B, C = map(int, input().split())
ans = (A * (A + 1) * B * (B + 1) * C * (C + 1) // 8) % 998244353
print(int(ans))
Il n'y avait qu'une différence entre / ou //.
print(type(A * (A + 1) * B * (B + 1) * C * (C + 1)/8))
print(A * (A + 1) * B * (B + 1) * C * (C + 1)//8)
Le résultat est ...
1.8584458350497822e+51
1858445835049782285757026664950217712384527500000000
Vous pouvez voir que // est calculé avec précision, tandis que / est tronqué au milieu. La raison en est qu'il a été changé pour le type float.
Cette connaissance est importante, mais il était trop tard pour trouver comment résoudre le problème. Cela fait mal de laisser tomber le problème A, qui peut être résolu en un instant, même si j'ai résolu le problème B avec beaucoup d'efforts.
Recommended Posts