Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define pb push_back
  5. #define mp make_pair
  6. const int N=100050;
  7. const int L=11;
  8. const int mod=998244353;
  9. int mul(int x, int y){ return (ll)x*y%mod;}
  10. int add(int x, int y){ x+=y;return x>=mod?x-mod:x;}
  11. int sub(int x, int y){ x-=y;return x<0?x+mod:x;}
  12. int po[N];
  13. int sum[L],cnt[L];
  14. int GetA(int x, int l)
  15. {
  16. int m=10,t=1,ans=0;
  17. while(l--)
  18. {
  19. if(x==0) break;
  20. ans=add(ans,mul(m,x%10));
  21. x/=10;
  22. m=mul(m,100);
  23. t=mul(t,100);
  24. }
  25. if(x) ans=add(ans,mul(t,x));
  26. return ans;
  27. }
  28. int GetB(int x, int l)
  29. {
  30. int m=1,ans=0;
  31. while(l--)
  32. {
  33. if(x==0) break;
  34. ans=add(ans,mul(m,x%10));
  35. x/=10;
  36. m=mul(m,100);
  37. }
  38. if(x) ans=add(ans,mul(m,x));
  39. return ans;
  40. }
  41. int GetL(int x){ int ans=0;while(x) x/=10,ans++;return ans;}
  42. int a[N];
  43. int main()
  44. {
  45. int n;
  46. scanf("%i",&n);
  47. for(int i=1;i<=n;i++)
  48. {
  49. scanf("%i",&a[i]);
  50. int l=GetL(a[i]);
  51. cnt[l]++;
  52. }
  53. int ans=0;
  54. for(int i=1;i<=n;i++)
  55. {
  56. for(int j=0;j<L;j++)
  57. {
  58. ans=add(ans,mul(cnt[j],GetA(a[i],j)));
  59. ans=add(ans,mul(cnt[j],GetB(a[i],j)));
  60. }
  61. }
  62. printf("%i\n",ans);
  63. return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement