/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 102ms 8.02 MiB
#2 Accepted 116ms 8.453 MiB
#3 Accepted 117ms 8.578 MiB
#4 Accepted 116ms 8.566 MiB
#5 Accepted 116ms 8.52 MiB
#6 Accepted 116ms 8.617 MiB

Code


#include <bits/stdc++.h>
using namespace std;

#include <iostream>
#include <vector>
#include <queue>
#include <unordered_set>
#include <iterator>


#define ll long long int
#define pii pair<int, int>
#define pll pair<long long, long long>
#define vi vector<int>
#define vll vector<long long>
#define mii map<int, int>
#define si set<int>
#define sc set<char>

#define loop(i,s,e) for(long long int i=s;i<e;i++)
#define cf(i,e,s) for(long long int i=e;i<=s;i++)
#define rf(i,e,s) for(long long int i=e-1;i>=s;i--)
#define pb push_back
#define eb emplace_back


template <class T>
void print_v(vector<T> &v) { cout << "{"; for (auto x : v) cout << x << ","; cout << "\b}"; }


#define PI 3.1415926535897932384626433832795
#define read(type) readInt<type>()
ll min(ll a,int b) { if (a<b) return a; return b; }
ll min(int a,ll b) { if (a<b) return a; return b; }
ll max(ll a,int b) { if (a>b) return a; return b; }
ll max(int a,ll b) { if (a>b) return a; return b; }
ll gcd(ll a,ll b) { if (b==0) return a; return gcd(b, a%b); }
ll lcm(ll a,ll b) { return a/gcd(a,b)*b; }
string to_upper(string a) { for (int i=0;i<(int)a.size();++i) if (a[i]>='a' && a[i]<='z') a[i]-='a'-'A'; return a; }
string to_lower(string a) { for (int i=0;i<(int)a.size();++i) if (a[i]>='A' && a[i]<='Z') a[i]+='a'-'A'; return a; }
bool prime(ll a) { if (a==1) return 0; for (int i=2;i<=round(sqrt(a));++i) if (a%i==0) return 0; return 1; }
void yes() { cout<<"YES\n"; }
void no() { cout<<"NO\n"; }

typedef long int int32;
typedef unsigned long int uint32;
typedef long long int int64;
typedef unsigned long long int  uint64;






#define f first
#define s second
#define endl '\n'
#define sp <<" "<<
#define pb push_back
#define fora(a) for(auto it:a)
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) (a*(b/gcd(a,b)))
#define all(a) (a).begin(),(a).end()
#define rall(a) (a).rbegin(),(a).rend()
#define test int tc; cin>>tc; while(tc--)
#define forn(i,n) for(auto i=0; i<n; i++)
#define printv(a) {for(auto u:a) cout<<u<<" "; cout<<endl;}
#define printm(a) {for(auto u:a) cout<<u.f sp u.s<<endl;}
#define op() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define fori(a,b,c) {for(a = c.begin(); a!=b; a++) cout<< *a<< " "; cout<<endl;}
#define fraction(a) cout.unsetf(ios::floatfield); cout.precision(a); cout.setf(ios::fixed,ios::floatfield);

typedef unsigned long long ull;
typedef vector<ll> vl;
typedef vector<bool> vb;
typedef vector<char> vc;
typedef vector<string> vs;
typedef vector<int>::iterator vit;
const double eps = 1e-9;

const int NMAX = 100005;

const int MAXX=200000;


const int M0=998244353;

const int M=1000001;
vi s(M+1,0);
void b(){
cf(a,2,M){
  if(!s[a]){
   s[a]=a;
   if((ll)a*a<=M)for(int b=a*a;b<=M;b+=a) s[b]= s[b]==0?a:s[b];
  }
 }
}
ll f(int a){
 ll r=1;
 while(a>1){
  int b=s[a],c=0;
  while(a%b==0){c++;a/=b;}
  r*= (c+1);
 }
 return r;
}
int main(){
    ios::sync_with_stdio(false);                                               \
    cin.tie(NULL);                                                             \
    cout.tie(NULL);                                                            \
    
	b();
	int t;cin>>t;
	int a=1000000;
	vi x(a+1,0);
	int y=0;
	cf(z,1,a){
	 int p= (z%2==0)? z/2: z;
	 int q= (z%2==0)? z+1: (z+1)/2;
	 ll r=f(p)*f(q);
	 y= (r>y)? r:y;
	 x[z]=y;
	}
	while(t--){
	 int z;cin>>z;
	 cout<<x[z]<<"\n";
	}
   
    
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1180 Maximum Divisor
Contest
Brain Booster #9
Language
C++17 (G++ 13.2.0)
Submit At
2025-04-06 15:50:20
Judged At
2025-04-06 15:50:20
Judged By
Score
100
Total Time
117ms
Peak Memory
8.617 MiB