제출 #1326185

#제출 시각아이디문제언어결과실행 시간메모리
1326185Mauricio_CruzSelf Study (JOI22_ho_t2)C++20
0 / 100
98 ms8868 KiB
#include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() #define srtl(x)sort(all(x)) #define srtg(x)sort((x).begin(),(x).end(),greater<>()) #define rev(x) reverse(all(x)) #define lb(x,y) lower_bound(x.begin(),x.end(),y)-x.begin() #define ub(x,y) upper_bound(x.begin(),x.end(),y)-x.begin() #define ios ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define f first #define s second #define pb push_back #define ins insert #define next next_permutation #define _b __builtin_popcount #define ve vector #define pii pair<int,int> #define piii pair<int,pii> #define vi vector<int> #define vii vector<pii> #define viii vector<piii> #define vvi vector<vi> #define vs vector<string> #define vb vector<bool> #define pV(x)for(auto i:x)cout<<i<<" "; #define geta(a){for(auto &i:a)cin>>i;} #define fr(n)for(int i=0;i<n;i++) #define Fr(n)for(int i=n-1;i>=0;i--) #define suma(a)accumulate(a.begin(),a.end(),0LL) #define br(x){cout<<x<<"\n";return;} #define yesn cout<<"YES\n"; #define yes()br("YES"); #define no(){br("NO")} #define alice() br("Alice"); #define bob() br("Bob"); #define cn continue; #define cint const int #define int long long int mod=1000000007; cint mod1=100000007; cint mod2=998244353; int ax[8]={0,1,0,-1,-1,1,1,-1}; int ay[8]={1,0,-1,0,1,-1,1,-1}; //bool on(int x,int y){return (x>=0&&x<n&&y>=0&&y<m);} //int euc(int a,int b,int c,int d){return abs(a-c)+abs(b-d);} int bp(int x,int y){ if(y==0)return 1; int r=bp(x,y/2); return (y&1)?r*r%mod*x%mod:r*r%mod; } int bpm(int x,int y){ if(y==0)return 1; int r=bp(x,y/2); return (y&1)?r*r*x:r*r; } cint N=200006; int F[N+1],I[N+1]; int cmb(int n,int k){ return (((F[n]*I[k])%mod)*I[n-k])%mod; } int cinn(){ int n; cin>>n; return n; } #define w cinn() int n,m; vi a,b; bool p(int x){ int ap=0; for(int i=0;i<n;i++){ int c=(x+a[i]-1)/a[i]; if(a[i]*m>=x){ ap+=m-c; } else{ c=((x-m*a[i])+b[i]-1)/b[i]; ap-=c; } } return ap>=0; } void solve(){ n=w;m=w; for(int i=0;i<n;i++){ a.pb(w); } for(int i=0;i<n;i++){ b.pb(w); a[i]=max(a[i],b[i]); } int mi=-1,ma=1e18,me; int res=0; while(ma-mi!=1){ me=(ma+mi)/2; if(p(me)){ mi=me; res=max(res,me); } else ma=me; } cout<<res; } int32_t main(){ ios; int t=1; //cin>>t; /* F[0]=1; for(int i=1;i<=N;i++){ F[i]=(i*F[i-1])%mod; } I[N]=(bp(F[N],mod-2))%mod; for(int i=N-1;i>=0;i--){ I[i]=(I[i+1]*(i+1))%mod; } //*/ while(t--){ solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...