Submission #713141

#TimeUsernameProblemLanguageResultExecution timeMemory
713141meowwIntercastellar (JOI22_ho_t1)C++14
60 / 100
2072 ms8816 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; #define int long long #define endl "\n" int mod=1e9+7; const int N=2e5+5; template<class x> using ordered_multiset = tree<x, null_type,less_equal<x>, rb_tree_tag,tree_order_statistics_node_update>; int n; vector<pair<int,int> > v; void cl(int x) { pair<int,int> gg={1e10,1e10}; for (int i=1;i*i<=x;i++) { int j=x/i; if (x%i==0 && x%j==0 && (i%2!=0 || j%2!=0)) { pair<int,int> tmp; if (i%2!=0 && j%2!=0) tmp={min(i,j),max(i,j)}; else { if (i%2!=0) tmp={j,i}; else tmp={i,j}; } gg=min(gg,tmp); } } v.push_back(gg); } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); //freopen(".in", "r", stdin); freopen(".out", "w", stdout); cin>>n; for (int i=0;i<n;i++) { int x; cin>>x; cl(x); } pair<int,int> prfx[n+1]; for (int i=1;i<=n;i++) { prfx[i].first=v[i-1].first+prfx[i-1].first; prfx[i].second=v[i-1].second; } int q; cin>>q; while (q--) { int x; cin>>x; pair<int,int> tmp={x,0}; int i=upper_bound(prfx+1,prfx+(n+1),tmp)-prfx+1; i--; cout<<prfx[i].second<<endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...