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