Submission #9813901
Source Code Expand
#include<bits/stdc++.h> using namespace std; template<typename T1,typename T2> inline void chmin(T1 &a,T2 b){if(a>b) a=b;} template<typename T1,typename T2> inline void chmax(T1 &a,T2 b){if(a<b) a=b;} template<typename F> struct FixPoint : F{ FixPoint(F&& f):F(forward<F>(f)){} template<typename... Args> decltype(auto) operator()(Args&&... args) const{ return F::operator()(*this,forward<Args>(args)...); } }; template<typename F> inline decltype(auto) MFP(F&& f){ return FixPoint<F>{forward<F>(f)}; } __int128_t abs128(__int128_t val){return val<0?-val:val;} ostream &operator<<(ostream &os,__int128_t val){ if(ostream::sentry(os)){ __uint128_t tmp=abs128(val); char buf[64]; char *d=end(buf); do{ --d; *d=char(tmp%10+'0'); tmp/=10; }while(tmp); if(val<0) *--d='-'; int len=end(buf)-d; if(os.rdbuf()->sputn(d,len)!=len){ os.setstate(ios_base::badbit); } } return os; } istream &operator>>(istream &is,__int128_t &val){ string s; is>>s; val=0; for(int i=0;i<(int)s.size();i++) if(isdigit(s[i])) val=val*10+s[i]-'0'; if(s[0]=='-') val*=-1; return is; } //INSERT ABOVE HERE signed main(){ using ll = __int128_t; ll d; cin>>d; const ll MAX = 37; ll ans=0; vector<ll> po(MAX,1); for(int i=0;i+1<MAX;i++) po[i+1]=po[i]*10; vector<ll> c1(12,0),c2(12,0); for(int i=1;i<10;i++) for(int j=1;j<=i;j++) c1[abs(i-j)]++; for(int i=0;i<10;i++) for(int j=0;j<=i;j++) c2[abs(i-j)]++; for(int l=2;l<=MAX;l++){ // [s, t] ans+= MFP([&](auto dfs,ll s,ll t,ll w)->ll{ if(s>=t){ if(w!=0) return 0; return s==t?10:1; } ll dif=po[t]-po[s]; ll x=w/dif; if(x>=10) return 0; ll res=0; res+=(s==0?c1:c2)[x+0]*dfs(s+1,t-1,abs128(w-(x+0)*dif)); res+=(s==0?c1:c2)[x+1]*dfs(s+1,t-1,abs128(w-(x+1)*dif)); return res; })(0,l-1,d); } cout<<ans<<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | F - Mirrored |
User | beet |
Language | C++14 (GCC 5.4.1) |
Score | 800 |
Code Size | 2140 Byte |
Status | AC |
Exec Time | 3 ms |
Memory | 256 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 800 / 800 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | a01, a02, a03 |
All | a01, a02, a03, b04, b05, b06, b07, b08, b09, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49, b50, b51, b52, b53, b54, b55, b56, b57, b58, b59, b60, b61, b62, b63 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
a01 | AC | 1 ms | 256 KB |
a02 | AC | 1 ms | 256 KB |
a03 | AC | 2 ms | 256 KB |
b04 | AC | 1 ms | 256 KB |
b05 | AC | 1 ms | 256 KB |
b06 | AC | 1 ms | 256 KB |
b07 | AC | 1 ms | 256 KB |
b08 | AC | 1 ms | 256 KB |
b09 | AC | 1 ms | 256 KB |
b10 | AC | 1 ms | 256 KB |
b11 | AC | 1 ms | 256 KB |
b12 | AC | 1 ms | 256 KB |
b13 | AC | 1 ms | 256 KB |
b14 | AC | 1 ms | 256 KB |
b15 | AC | 1 ms | 256 KB |
b16 | AC | 1 ms | 256 KB |
b17 | AC | 2 ms | 256 KB |
b18 | AC | 2 ms | 256 KB |
b19 | AC | 2 ms | 256 KB |
b20 | AC | 2 ms | 256 KB |
b21 | AC | 2 ms | 256 KB |
b22 | AC | 2 ms | 256 KB |
b23 | AC | 2 ms | 256 KB |
b24 | AC | 2 ms | 256 KB |
b25 | AC | 2 ms | 256 KB |
b26 | AC | 2 ms | 256 KB |
b27 | AC | 2 ms | 256 KB |
b28 | AC | 2 ms | 256 KB |
b29 | AC | 2 ms | 256 KB |
b30 | AC | 2 ms | 256 KB |
b31 | AC | 2 ms | 256 KB |
b32 | AC | 2 ms | 256 KB |
b33 | AC | 2 ms | 256 KB |
b34 | AC | 3 ms | 256 KB |
b35 | AC | 3 ms | 256 KB |
b36 | AC | 3 ms | 256 KB |
b37 | AC | 2 ms | 256 KB |
b38 | AC | 2 ms | 256 KB |
b39 | AC | 2 ms | 256 KB |
b40 | AC | 2 ms | 256 KB |
b41 | AC | 2 ms | 256 KB |
b42 | AC | 2 ms | 256 KB |
b43 | AC | 2 ms | 256 KB |
b44 | AC | 1 ms | 256 KB |
b45 | AC | 1 ms | 256 KB |
b46 | AC | 1 ms | 256 KB |
b47 | AC | 1 ms | 256 KB |
b48 | AC | 1 ms | 256 KB |
b49 | AC | 1 ms | 256 KB |
b50 | AC | 2 ms | 256 KB |
b51 | AC | 2 ms | 256 KB |
b52 | AC | 2 ms | 256 KB |
b53 | AC | 2 ms | 256 KB |
b54 | AC | 2 ms | 256 KB |
b55 | AC | 3 ms | 256 KB |
b56 | AC | 2 ms | 256 KB |
b57 | AC | 2 ms | 256 KB |
b58 | AC | 2 ms | 256 KB |
b59 | AC | 2 ms | 256 KB |
b60 | AC | 2 ms | 256 KB |
b61 | AC | 2 ms | 256 KB |
b62 | AC | 2 ms | 256 KB |
b63 | AC | 2 ms | 256 KB |