Submission #1318968

#TimeUsernameProblemLanguageResultExecution timeMemory
1318968nambanana987Intercastellar (JOI22_ho_t1)C++20
25 / 100
34 ms5516 KiB
#include <bits/stdc++.h>
#include <climits>
using namespace std;
#define f first
#define s second
#define all(a) a.begin(),a.end()
#define sz(a) (int)a.size()
#define int long long
#define mk make_pair
const int N=2e5+5;

int fact[N];
int M[N],res[N];
int n,q;

void sieve(){
    for(int i=1;i<N;++i) fact[i]=i;

    for(int i=2;i*i<N;++i){
        if(fact[i]!=i) continue;
        for(int j=i*i;j<N;j+=i){
            if(fact[j]==j) fact[j]=i;
        }
    }
}
void solve(){
    cin>>n;
    sieve();
    for(int i=1;i<=n;++i ){
        int temp;cin>>temp;
        int tich=1,hai=1;
        while(temp>1){
            int p=fact[temp];
            while(temp%p==0){
                if(p==2) hai*=2;
                else tich*=p;
                temp/=p;
            }
        }
        M[i]=hai;
        M[i]+=M[i-1];
        res[i]=tich;
    }

    cin>>q;
    while(q--){
        int x;cin>>x;
        int p=lower_bound(M+1,M+n+1,x)-M;
        cout<<res[p]<<'\n';
    }
    
}
signed main(){

    ios_base::sync_with_stdio(0);cin.tie(0);
    solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...