提交时间:2024-11-11 13:50:05
运行 ID: 34582
#include<bits/stdc++.h> using namespace std; long long n; long long ans=0; int c[20],cnt=0; int k[20],a[20],b[20]; void equal(){ int l=1,r=cnt; while(l<r){ if(k[l++]!=k[r--]){ return; } } l=(cnt+1)/2; long long ansz=min(k[1]-1,9)-max(k[1]-10,0); //cout<<ansz<<" "; for(int i=2;i<=l;i++){ ansz*=min(k[i],9)-max(k[i]-10,-1); //cout<<ansz<<" "<<min(k[i],9)-max(k[i]-10,-1)<<" "; } ans+=ansz; //cout<<ansz<<" "; //cout<<endl; //for(int i=1;i<=cnt;i++) cout<<k[i]<<" "; //cout<<endl; //cout<<"!"<<ans<<" "; } void unequal(){ for(int i=1;i<cnt;i++){//一个cnt位一个i位 //int z=cnt/i; //cout<<cnt<<" "<<i<<endl; for(int j=1;j<=cnt;j++) a[j]=b[j]=0; for(int j=cnt;j>cnt-i;j--){ a[cnt-j+1]=a[j]=k[j]; //cout<<k[j]<<" "; } //cout<<"k[cnt]:"<<k[cnt]<<endl; int l=1,r=cnt-i; //int pp=1; //for(int j=1;j<=cnt;j++) cout<<a[j]<<" "; //cout<<endl; int ok=1; while(l<=r){ while(l<=r&&l+r<=cnt){ b[l]=b[cnt-i-l+1]=k[l]-a[l]; l++; } while(l<=r&&l+r>cnt-i+1){ a[r]=a[cnt-r+1]=k[r]-b[r]; //cout<<"r:"<<r<<" "<<k[r]<<" "<<b[r]<<endl; r--; } //for(int j=1;j<=cnt;j++) cout<<a[j]<<" "; //cout<<endl; } //cout<<"a:"; for(int j=1;j<=cnt;j++){ if(a[j]<0||a[j]>9||a[j]+b[j]!=k[j]) ok=0; //cout<<a[j]<<" "; } //cout<<endl<<"b:"; //int k=1; for(int j=1;j<=cnt-i;j++){ if(b[j]<0||b[j]>9) ok=0; //if(b[j]!=0) k=0; //cout<<b[j]<<" "; } if(b[1]==0) ok=0; //cout<<endl<<"c:"; //for(int j=1;j<=cnt;j++) cout<<a[j]+b[j]<<" "; //cout<<ok<<endl; if(!ok) continue; ans+=2; //for(int j=1;j<=cnt;j++) cout<<a[j]<<" "; //cout<<endl; //for(int j=1;j<=cnt-i;j++) cout<<b[j]<<" "; // cout<<endl; } //cout<<"!2 "<<ans<<" "; } signed main(){ cin>>n; long long q=n; while(q!=0){ c[++cnt]=q%10; q/=10; } //for(int i=1;i<=cnt;i++) cout<<c[i]<<" "; for(int i=0;i<=1<<(cnt-1);i++){ for(int j=1;j<=cnt;j++) k[j]=c[j]; int x=i; int ok=true; int p=0; while(x!=0){ p++; if(x%2){ k[p]+=10; k[p+1]-=1; } x/=2; if(k[p]<0) ok=false; } //for(int j=1;j<=cnt;j++) cout<<k[j]<<" "; //cout<<endl; if(!ok) continue; int ct=cnt; while(k[cnt]==0) --cnt; equal();unequal(); cnt=ct; } cout<<ans<<endl; }