This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#define ll int
#define ld double
#define cd complex<ld>
#define pll pair<ll,ll>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std ;
ll m , q ;
ll A[100005] = {} ;
void solve()
{
cin >> m >> q ;
for(int i = 1 ; i<= m ; i++) cin >> A[i] ;
vector<ll> ans ;
ll cur = 0 ;
ans.push_back(0) ;
ll last = 0 ;
while(cur<=10000000)
{
ll F = 0 ;
for(int j = 1 ; j<= m ; j++)
{
F = max(F , cur-cur%A[j]+A[j]-1) ;
}
if(F<=cur) break ;
ans.push_back(F) ;
cur = F ;
}
last = cur ;
//for(int i = 0 ; i< ans.size() ; i++) cout << ans[i] << "\n" ;
for(int i = 1 ; i<= q ; i++)
{
if(i>=100) assert(0) ;
ll k ; cin >> k ;
ll save = k ;
if(save>last)
{
cout << "oo\n" ;
continue ;
}
ll lo = 0 , hi = ans.size() ;
hi-- ;
if(hi<0)
{
cout << "oo\n" ;
continue ;
}
while(hi-lo>1)
{
ll mid = ((hi+lo)>>1) ;
if(ans[mid]>k) hi = mid ;
else lo = mid ;
}
if(ans[hi]<=k)
{
cout << hi ;
}
else cout << lo ;
cout << "\n" ;
}
}
int main()
{
ios_base::sync_with_stdio(NULL) ; cin.tie(nullptr) ; cout.tie(nullptr) ;
//freopen("LINES.inp" , "r" , stdin) ;
//freopen("LINES.out" , "w" , stdout) ;
//freopen("IN.txt" , "r" , stdin) ;
int t = 1; //cin >> t ;
for(int i = 1 ; i<= t ; i++)
{
solve() ;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |