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 years + = kk% mod; 66 years% = mod; 67 // cout << endl << years; 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 years + = kk% mod; 84 years% = 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 years + = kk% mod; 111 years% = mod; 112 } 113 } 114 } 115 116 117 118 printf ( " % lld \ n " , year); 119 120 121 return 0; 122 }