1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <algorithm> 6 #include <set> 7 #include <map> 8 #include <queue> 9 #include <vector> 10 #include <cctype> 11 #include <sstream> 12 using namespace std; 13 typedef long long ll; 14 const int inf=0x7fffffff; 15 const int N=100000+100; 16 const int M=50000+10; 17 const ll mod=998244353; 18 ll k; 19 ll n; 20 string s[N]; 21 ll ans=0; 22 ll kuaisu(ll x) 23 { 24 ll ans=1,a=10; 25 while(x) 26 { 27 if(x%2==1) ans=((ans%mod)*(a%mod))%mod; 28 x/=2; 29 a=((a%mod)*(a%mod))%mod; 30 } 31 return ans; 32 } 33 ll cheng(ll a,ll b) 34 { 35 return ((a%mod)*(b%mod))%mod; 36 } 37 int main() 38 { 39 scanf("%lld",&k); 40 for(ll i=1;i<=k;i++) 41 cin>>s[i]; 42 for(ll i=1;i<=k;i++) 43 { 44 ll kk=0,cnt=0; 45 for(int j=s[i].size()-1;j>=0;j--) 46 { 47 kk+=cheng(kuaisu(cnt),s[i][j]-'0'); 48 kk+=cheng(kuaisu(cnt+1),s[i][j]-'0'); 49 cnt+=2; 50 } 51 ans+=kk%mod; 52 ans%=mod; 53 //cout<<ans<<endl; 54 for(ll j=i+1;j<=k;j++) 55 { 56 if(s[i].size()>=s[j].size()) 57 { 58 kk=0; cnt=0; 59 for(int kkk=s[j].size()-1;kkk>=0;kkk--) 60 { 61 kk+=cheng(kuaisu(cnt),s[j][kkk]-'0'); 62 kk+=cheng(kuaisu(cnt+1),s[j][kkk]-'0'); 63 cnt+=2; 64 } 65 ans+=kk%mod; 66 ans%=mod; 67 //cout<<ans<<endl; 68 ll cc=s[j].size(); 69 kk=0; cnt=0; 70 for(int kkk=s[i].size()-1;kkk>=s[i].size()-cc;kkk--) 71 { 72 kk+=cheng(kuaisu(cnt),s[i][kkk]-'0'); 73 kk+=cheng(kuaisu(cnt+1),s[i][kkk]-'0'); 74 cnt+=2; 75 //cout<<kk<<endl; 76 } 77 //cout<<kk<<endl; 78 for(int kkk=s[i].size()-cc-1;kkk>=0;kkk--) 79 { 80 kk+=cheng(kuaisu(cnt),(s[i][kkk]-'0')*2); 81 cnt++; 82 } 83 ans+=kk%mod; 84 ans%=mod; 85 } 86 else if(s[i].size()<s[j].size()) 87 { 88 kk=0,cnt=0; 89 for(int kkk=s[i].size()-1;kkk>=0;kkk--) 90 { 91 kk+=cheng(kuaisu(cnt),s[i][kkk]-'0'); 92 kk+=cheng(kuaisu(cnt+1),s[i][kkk]-'0'); 93 cnt+=2; 94 } 95 ans+=kk%mod; 96 ans%=mod; 97 int cc=s[i].size(); 98 kk=0; cnt=0; 99 for(int kkk=s[j].size()-1;kkk>=s[j].size()-cc;kkk--) 100 { 101 kk+=cheng(kuaisu(cnt),s[j][kkk]-'0'); 102 kk+=cheng(kuaisu(cnt+1),s[j][kkk]-'0'); 103 cnt+=2; 104 } 105 for(int kkk=s[j].size()-cc-1;kkk>=0;kkk--) 106 { 107 kk+=cheng(kuaisu(cnt),(s[j][kkk]-'0')*2); 108 cnt++; 109 } 110 ans+=kk%mod; 111 ans%=mod; 112 } 113 } 114 } 115 116 117 118 printf("%lld\n",ans); 119 120 121 return 0; 122 }
[cf]
猜你喜欢
转载自www.cnblogs.com/Kaike/p/11204617.html
今日推荐
周排行