結果

問題 No.3398 Accuracy of Integer Division Approximate Function 2
コンテスト
ユーザー 👑 Mizar
提出日時 2025-12-04 21:14:23
言語 cLay
(20241019-1 + boost 1.89.0)
結果
CE  
実行時間 -
コード長 323 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 7,073 ms
コンパイル使用メモリ 447,392 KB
最終ジャッジ日時 2025-12-05 23:26:53
合計ジャッジ時間 7,542 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
warning: unknown type [cpp_int] for rd (reader) : D
warning: unknown type [cpp_int] for rd (reader) : A
warning: unknown type [cpp_int] for rd (reader) : B
warning: unknown type [cpp_int] for rd (reader) : K
main.cpp: In function ‘int main()’:
main.cpp:397:7: error: no matching function for call to ‘rd(boost::multiprecision::cpp_int&)’
  397 |     rd(D);
      |     ~~^~~
main.cpp:199:13: note: candidate: ‘void rd(std::string&)’
  199 | inline void rd(string &x){
      |             ^~
main.cpp:199:24: note:   no known conversion for argument 1 from ‘boost::multiprecision::cpp_int’ {aka ‘boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<> >’} to ‘std::string&’ {aka ‘std::__cxx11::basic_string<char>&’}
  199 | inline void rd(string &x){
      |                ~~~~~~~~^
main.cpp:169:13: note: candidate: ‘void rd(char&)’
  169 | inline void rd(char &c){
      |             ^~
main.cpp:169:22: note:   no known conversion for argument 1 from ‘boost::multiprecision::cpp_int’ {aka ‘boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<> >’} to ‘char&’
  169 | inline void rd(char &c){
      |                ~~~~~~^
main.cpp:127:13: note: candidate: ‘void rd(double&)’
  127 | inline void rd(double &x){
      |             ^~
main.cpp:127:24: note:   no known conversion for argument 1 from ‘boost::multiprecision::cpp_int’ {aka ‘boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<> >’} to ‘double&’
  127 | inline void rd(double &x){
      |                ~~~~~~~~^
main.cpp:109:13: note: candidate: ‘void rd(long long unsigned int&)’
  109 | inline void rd(unsigned long long &x){
      |             ^~
main.cpp:109:36: note:   no known conversion for argument 1 from ‘boost::multiprecision::cpp_int’ {aka ‘boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<> >’} to ‘long long unsigned int&’
  109 |

ソースコード

diff #
raw source code

ll@T;REP(T){cpp_int@(D,A,B,K),n,a,b,c,d,m,x,g,r,l=0,h,q,s,v;D/=g=gcd(D,A);A/=g;if(A*B%D<1&&D*K+2>A){wt(-1);}else{h=A*B*K+2;while(l+1<h){x=n=(l+h)/2;a=B;b=-A*B/D;c=D;m=A;s=v=d=0;while(a+=c/m*b,c%=m,s+=d/m*b,d%=m,v>?=s,v>?=s+a*~-n+b*(q=(c*~-n+d)/m),n=q){s+=(a+b)*(a<0);d=m+~d;swap(a,b);swap(c,m);}(v<=B*K?l:h)=x;}wt(g*D*l);}}
0