Professional Documents
Culture Documents
Omega Pairs Media - Net Interview Question
Omega Pairs Media - Net Interview Question
n=int(input())
lst=list(map(int,input().split()))
mod=10**9+7
primes=[2,3,5,7,11,13,17,19,23,29]
for i in range(10):
if val%primes[i]==0:
if val%(primes[i]**2)==0:
res=-1
break
res|=(1<<i)
arr[idx]=res
for i in range(n):
for mask in range(1<<10):
if i==0:
dp[i][mask]=1 if mask==arr[0] else 0
else:
if arr[i]==-1:
dp[i][mask]=dp[i-1][mask]
else:
dp[i][mask]=dp[i-1][mask]+(dp[i-1][mask^arr[i]] if mask&arr[i]==arr[i] else
0)+(1 if arr[i]==mask else 0)
if dp[i][mask]>=mod:
dp[i][mask]%=mod
ans=0
for mask in range(1<<10):
ans+=dp[n-1][mask]
ans%=mod
print(ans*(2**lst.count(1))%mod)
(C++):
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
if (dp[num][mask] != -1)
return dp[num][mask];
ll take = 0, nottake = 0;
cnt[a[i]]++;
}