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)
| ^~...