제출 #916039

#제출 시각아이디문제언어결과실행 시간메모리
916039yeediotSelf Study (JOI22_ho_t2)C++14
10 / 100
103 ms18396 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define pb push_back #define pii pair<int,int> #define F first #define S second #define all(X) X.begin(),X.end() #define chmax(a,b) a=max(a,b) #define chmin(a,b) a=min(a,b) #ifdef local void setio(){freopen("/Users/iantsai/Library/Mobile Documents/com~apple~CloudDocs/cpp/Empty.md","r",stdin);} #define debug(x...) cerr << "[" << #x << "] = ["; _print(x) #else void setio(){} #define debug(x...) #endif signed main(){ ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); setio(); int n,m; cin>>n>>m; vector<pair<__int128,__int128>>v; for(int i=0;i<n;i++){ int a; cin>>a; v.pb({a,0}); } for(int i=0;i<n;i++){ int a; cin>>a; v[i].S=a; } int l=0,r=(int)2e18+10; while(l<r){ int mm=l+r+1>>1; __int128 left=0; bool ok=1; for(int i=0;i<n;i++){ if(v[i].F>=v[i].S){ if(v[i].F*m>=mm){ __int128 x=ceil((double)mm/v[i].F); left+=m-x; } else{ __int128 cur=mm; cur-=m*v[i].F; __int128 x=ceil((double)cur/v[i].S); left-=x; if(left<0){ ok=0; break; } } } else{ left+=m; __int128 x=ceil((double)mm/v[i].S); left-=x; if(left<0){ ok=0; break; } } } if(ok){ l=mm; } else{ r=mm-1; } } cout<<l<<'\n'; }

컴파일 시 표준 에러 (stderr) 메시지

Main.cpp: In function 'int main()':
Main.cpp:37:19: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   37 |         int mm=l+r+1>>1;
      |                ~~~^~
#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...