Submission #37693300


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
#define loopU(n)           for (int i=0 ; i<n ; i++)
#define loopD(n)           for (int i=n-1 ; i>=0 ; i--)
#define loopu(i,in1,in2)    for (int i=in1 ; i<in2 ; i++)
#define loopd(j,in1,in2)    for (int j=in1 ; j>=in2 ; j--)
#define ll                 long long
#define f                  first
#define s                  second
#define pub                 push_back
#define pob                 pop_back()
#define puf                 push_front
#define pof                 pop_front()
#define sz                 size()
#define el                 "\n"
#define vi                 vector
#define rbgn               rbegin()
#define bgn                begin()
#define nd                 end()
#define rnd                 rend
#define emt                 empty()
#define sort(v)            sort(v.begin(),v.end())
map<int,int> lcm;
vi<map<int,int>> v;
void fac(int n)
{
map<ll,ll> mp;
    for (int i=2; i<=n; i++)
    {
        while(n%i==0)
        {
            n /=i;
            mp[i]++;
        }
     if(mp[i]>0)
        lcm[i] = max(mp[i],lcm[i]);
    }
    v.pub(mp);
}

int main()
{
    cin.tie(0);
    cin.sync_with_stdio(0);
    int n,ans=0,m=1000000007;
    cin >> n;
    int a[n];
    loopU(n)
    {
        cin >> a[i];
        fac(a[i]);
    }
    loopU(n)
    {
        int x = 1;
        map<ll,ll> mp = v[i];
        for(auto it : lcm){
          ll b = it.f,p1=mp[b],p2=it.s;
          ll y = pow(b,p2-p1);
          x = x%m * y%m;
          x%=m;
        }
        ans = ans%m + x%m;
        ans %= m;
    }
  cout << ans;

    return 0;
}



Submission Info

Submission Time
Task E - Flatten
User Ahmed_Abdelkader
Language C++ (GCC 9.2.1)
Score 0
Code Size 1677 Byte
Status CE

Compile Error

./Main.cpp: In function ‘void fac(int)’:
./Main.cpp:36:9: error: reference to ‘lcm’ is ambiguous
   36 |         lcm[i] = max(mp[i],lcm[i]);
      |         ^~~
In file included from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:84,
                 from ./Main.cpp:1:
/usr/include/c++/9/numeric:145:5: note: candidates are: ‘template<class _Mn, class _Nn> constexpr std::common_type_t<_Mn, _Nn> std::lcm(_Mn, _Nn)’
  145 |     lcm(_Mn __m, _Nn __n)
      |     ^~~
./Main.cpp:23:14: note:                 ‘std::map<int, int> lcm’
   23 | map<int,int> lcm;
      |              ^~~
./Main.cpp:36:28: error: reference to ‘lcm’ is ambiguous
   36 |         lcm[i] = max(mp[i],lcm[i]);
      |                            ^~~
In file included from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:84,
                 from ./Main.cpp:1:
/usr/include/c++/9/numeric:145:5: note: candidates are: ‘template<class _Mn, class _Nn> constexpr std::common_type_t<_Mn, _Nn> std::lcm(_Mn, _Nn)’
  145 |     lcm(_Mn __m, _Nn __n)
      |     ^~~
./Main.cpp:23:14: note:                 ‘std::map<int, int> lcm’
   23 | map<int,int> lcm;
      |              ^~~
./Main.cpp:38:13: error: no matching function for call to ‘std::vector<std::map<int, int> >::push_back(std::map<long long int, long long int>&)’
   38 |     v.pub(mp);
      |             ^
In file included from /usr/include/c++/9/vector:67,
                 from /usr/include/c++/9/functional:62,
                 from /usr/include/c++/9/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/9/algorithm:71,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:65,
                 from ./Main.cpp:1:
/usr/include/c++/9/bits/stl_vector.h:1184:7: note: candidate: ‘void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::map<int, int>; _Alloc = std::allocator<std::map<int, int> >; std::vector<_Tp, _Alloc>::value_type = std::map<int, int>]’
 1184 |       push_back(const value_type& __x)
      |       ^~...