Advertisement
Zeinab_Hamdy

Untitled

Nov 3rd, 2023 (edited)
1,056
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.13 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define nl "\n"
  4. #define fi first
  5. #define se second
  6. #define pb push_back
  7. #define ll long long
  8. #define ull unsigned ll
  9. #define RV  return void
  10. // #define inf 2000000000
  11. #define sz(x) int(x.size())
  12. #define all(v) v.begin(), v.end()
  13. #define rall(v) v.rbegin(), v.rend()
  14. #define Mini(x) *min_element(all(x))
  15. #define Maxi(x) *max_element(all(x))
  16. #define fixed(n) fixed << setprecision(n)
  17. #define ceil(w, m) (((w) / (m)) + ((w) % (m) ? 1 : 0))
  18. #define cin(v) for (auto&i:v) cin >> i;
  19. #define cout(v) for (auto&i:v) cout << i << " ";
  20. #define clr(memo, x) memset(memo, x, sizeof memo)
  21. #define updmin(a, b) a = min(a, b)
  22. #define updmax(a, b) a = max(a, b)
  23. #define vi vector < int >
  24. #define vl vector < ll >
  25. #define vc vector < char >
  26. #define vs vector < string >
  27. #define v2i vector < vector < int > >
  28. #define v2l vector < vector < int > >
  29. #define seti set < int >
  30. #define setl set < ll >
  31. #define mapii map < int , int >
  32. #define mapll map < ll , ll >
  33. #define mapli map < ll , int >
  34. #define mapci map < char , int >
  35. #define mapsi map < string , int >
  36. #define pll pair < ll , ll >
  37. #define pii pair < int , int >
  38. #define range(l,r,x) for(int i=l ; i < r ; i+=x)
  39. #define FastCode ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
  40. vector < string > ternary= {"NO\n" , "YES\n"};
  41.  
  42. void  Zainab(){
  43.             #ifndef ONLINE_JUDGE
  44.               freopen("input.txt", "r", stdin);
  45.               freopen("output.txt", "w", stdout);
  46.             #endif
  47. }
  48.  
  49.  
  50. /*================================  solution  ================================ */
  51.  
  52.  
  53.  
  54. void myCode(){
  55.  
  56.  
  57. ll saved[6][100][6][100]{};
  58.  
  59.  
  60. int n ;
  61. cin >> n ;
  62. vector < int > v(n);
  63.  
  64. for(auto& x : v){
  65.     cin >> x;
  66.     int w = x;
  67.     string s = to_string(x);
  68.     int total =0 , sum =0 ;
  69.     while(w){
  70.         total += w % 10;
  71.         w/=10;
  72.     }
  73.    
  74.     w = x;
  75.     int len1=0 ;
  76.     saved[0][0][sz(s)][total]++;
  77.    
  78.     while(w){
  79.         len1++;
  80.         sum += w % 10 ;
  81.         saved[len1][sum ][sz(s) - len1][total - sum ]++;
  82.         w/=10;
  83.     }
  84.    
  85. }
  86.  
  87.  
  88. ll ans =0;
  89.  
  90. for(auto& x : v ){
  91.     string s = to_string(x);
  92.     int total =0;
  93.     for(auto& c : s ) total += c-'0';
  94.    
  95.     for(int i =1 ; i <= 5 ; i++){
  96.         if(sz(s) > i){
  97.        
  98.             int sum =0;
  99.             for(int j =0 ; j < i ; j++) sum += s[j]-'0';
  100.  
  101.             if(i - (sz(s) - i) >=0)
  102.                 // ans += saved[ i - (sz(s) - i) ][total - sum][0][0] ;
  103.        
  104.                 ans += saved[0][0] [ i - (sz(s) - i) ][total - sum] ;
  105.                
  106.         }
  107.        
  108.         else{
  109.                
  110.             for(int k = 0 ; k <=  9 * (i-sz(s)) ; k++){    
  111.                
  112.                 ans += saved [i-sz(s)] [k] [i] [total + k];
  113.             }
  114.          
  115.         }
  116.     }
  117. }
  118.  
  119.  
  120. cout << ans << nl;
  121.  
  122.  
  123. }
  124.  
  125.  
  126. int main(){
  127.  
  128.             FastCode ;
  129.             // Zainab() ;
  130.  
  131.             int testCase=1;
  132.                 // cin >> testCase ;
  133.             for(int i=1 ; i<= testCase ; i++){
  134.                 //  cout << "Case #" << i << ": ";
  135.                 myCode();
  136.             }
  137.      
  138.  
  139.     return 0;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement