結果
問題 | No.373 かけ算と割った余り |
ユーザー |
![]() |
提出日時 | 2024-08-29 10:59:28 |
言語 | C (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 843 bytes |
コンパイル時間 | 340 ms |
コンパイル使用メモリ | 27,264 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-08-29 10:59:30 |
合計ジャッジ時間 | 1,235 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 3 WA * 2 |
ソースコード
#include <stdio.h>int main(){int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);a%=d;b%=d;c%=d;printf("%ld", (long)((a*b*c)%d));return 0;}/***********************************************************************************(a1*a2*a3)%m mを法としたa1, a2, a3のmoduloをb1, b2, b3とおくと、ある整数k1, k2, k3をおけばmoduloの定義式から( (m*k1+b1)*(m*k2+b2)*(m*k3+b3) )%mである。ここで、(m*k1+b1)*(m*k2+b2)*(m*k3+b3)を展開すると、各項のうちmを含まない項はb1*b2*b3である。よって、(a1*a2*a3)%mと(b1*b2*b3)*mは等しいため、この問題におけるA, B, C各数のmoduloを取ってから掛け合わせ、最後にmoduloを取ればよいと示せた。***********************************************************************************/