제출 #1141905

#제출 시각아이디문제언어결과실행 시간메모리
1141905hennesseySelf Study (JOI22_ho_t2)C++20
100 / 100
200 ms11244 KiB
#include <bits/stdc++.h> using namespace std; #define int long long signed main() { //your code goes here // for(int i = 0; i < 1; i++) { int n, m; cin >> n >> m; // n = rand()%1000; // m = 1; vector <int> arr = {}; vector <int> arr2 = {}; vector <int> arr3 = {}; for(int i = 0; i < n; i++) { int num; cin >> num; arr.push_back(num); } for(int i = 0; i < n; i++) { int num; cin >> num; arr2.push_back(num); } // for(int i = 0; i < n; i++) { // arr[i] = (rand()%100)+1; // arr2[i] = (rand()%100)+1; // } for(int i = 0; i < n; i++) { int v = max(arr[i], arr2[i]); int v2 = v*m; arr3.push_back(v2); } int ans = 0; int lo = 0; int hi = 1e18; int minv = 1e18; for(int i = 0; i < n; i++) { int v = max(arr[i], arr2[i]); minv = min(minv, v); } // cout << "HELLO" << endl; while(lo <= hi) { // cout << n << endl; int mid = (lo+hi)/2; int total = 0; for(int i = 0; i < n; i++) { if(total >= 1e18) { break; } int v = arr3[i]; int v2 = mid-v; int v3 = arr[i]; int v4 = arr2[i]; if(v2 == 0) { continue; } // cout << v << " " << v2 << " " << v3 << " " << v4 << " " << lo << " " << hi << endl; if(v2 > 0) { int v5 = (v2/v4); if((v2%v4) != 0) { v5++; } // cout << v2 << " " << v4 << " " << v5 << " " << v2%v4 << " " << total << endl; total += v5; } else { int v5 = abs(v2)/max(v3, v4); // cout << abs(v2) << " " << max(v3, v4) << " " << v5 << endl; total -= v5; } } if(total <= 0) { ans = max(ans, mid); // if(ans > minv) { // cout << 1e18 << endl; // break; // } // if(ans > minv) { // cout << total << " " << mid << endl; // break; // } lo = mid+1; } else { hi = mid-1; } } // if(m == 1) { // if(ans == minv) { // continue; // } else { // cout << "FOUND" << endl; // cout << n << " " << m << endl; // // for(int i = 0; i < n; i++) { // // cout << arr[i] << " "; // // } // // cout << endl; // // for(int i = 0; i < n; i++) { // // cout << arr2[i] << " "; // // } // // cout << endl; // cout << minv << " " << ans << endl; // break; // } // } cout << ans << endl; // } 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...