Submission #1187539

#TimeUsernameProblemLanguageResultExecution timeMemory
1187539vibhasSelf Study (JOI22_ho_t2)Java
100 / 100
386 ms75652 KiB
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { static long n, m; static long[] v, v2; static final long INF = 1000000000000000099L; static boolean czy(long x) { long a = 0; for (int i = 0; i < n; i++) { v[i] = Math.max(v[i], v2[i]); if (m * v[i] >= x) { a += (x + v[i] - 1) / v[i]; } else { a += m + (x - m * v[i] + v2[i] - 1) / v2[i]; } if (a > INF) return false; } return a <= m * n; } public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); n = Integer.parseInt(st.nextToken()); m = Integer.parseInt(st.nextToken()); v = new long[(int) n]; v2 = new long[(int) n]; st = new StringTokenizer(br.readLine()); for (int i = 0; i < n; i++) { v[i] = Integer.parseInt(st.nextToken()); } st = new StringTokenizer(br.readLine()); for (int i = 0; i < n; i++) { v2[i] = Integer.parseInt(st.nextToken()); } long pocz = 0; long kon = INF; while (pocz != kon) { long mid = (pocz + kon + 1) / 2; if (czy(mid)) { pocz = mid; } else { kon = mid - 1; } } System.out.println(pocz); } }
#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...