Task: | Entrepreneur |
Sender: | aalto2024a_006 |
Submission time: | 2024-09-04 17:47:38 +0300 |
Language: | C++ (C++17) |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.00 s | details |
#2 | ACCEPTED | 0.00 s | details |
#3 | ACCEPTED | 0.00 s | details |
#4 | ACCEPTED | 0.00 s | details |
#5 | ACCEPTED | 0.00 s | details |
#6 | ACCEPTED | 0.00 s | details |
#7 | ACCEPTED | 0.00 s | details |
#8 | ACCEPTED | 0.07 s | details |
#9 | ACCEPTED | 0.12 s | details |
#10 | ACCEPTED | 0.18 s | details |
#11 | ACCEPTED | 0.00 s | details |
#12 | ACCEPTED | 0.00 s | details |
#13 | ACCEPTED | 0.00 s | details |
#14 | ACCEPTED | 0.00 s | details |
#15 | ACCEPTED | 0.00 s | details |
Code
// ~/.vim/cpp_template.cpp #include <iostream> #include <vector> #include <algorithm> using namespace std; bool CPIT(long long time, const vector<int>& machines, long long target) { long long totalCars = 0; for (int machineTime : machines) { totalCars += time / machineTime; if (totalCars >= target) { return true; } } return totalCars >= target; } long long mTTPC(int n, long long t, const vector<int>& machines) { long long low = 1; long long high = *min_element(machines.begin(), machines.end()) * t; long long result = high; while (low <= high) { long long mid = low + (high - low) / 2; if (CPIT(mid, machines, t)) { result = mid; high = mid - 1; } else { low = mid + 1; } } return result; } int main() { int n; long long t; cin >> n >> t; vector<int> machines(n); for (int i = 0; i < n; i++) { cin >> machines[i]; } cout << mTTPC(n, t, machines) << endl; return 0; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
10 10 6 5 1 2 1 5 10 4 6 6 |
correct output |
---|
4 |
user output |
---|
4 |
Test 2
Verdict: ACCEPTED
input |
---|
10 10 6 6 4 3 4 9 3 2 6 10 |
correct output |
---|
6 |
user output |
---|
6 |
Test 3
Verdict: ACCEPTED
input |
---|
10 10 5 4 10 7 8 4 1 8 9 2 |
correct output |
---|
5 |
user output |
---|
5 |
Test 4
Verdict: ACCEPTED
input |
---|
1 1000000000 1 |
correct output |
---|
1000000000 |
user output |
---|
1000000000 |
Test 5
Verdict: ACCEPTED
input |
---|
1 1000000000 1000000000 |
correct output |
---|
1000000000000000000 |
user output |
---|
1000000000000000000 |
Test 6
Verdict: ACCEPTED
input |
---|
1000 1000 271 687 392 992 11 410 702 870... |
correct output |
---|
223 |
user output |
---|
223 |
Test 7
Verdict: ACCEPTED
input |
---|
1000 1000 598 523 703 794 737 689 724 26... |
correct output |
---|
282 |
user output |
---|
282 |
Test 8
Verdict: ACCEPTED
input |
---|
200000 1000000000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
5000 |
user output |
---|
5000 |
Test 9
Verdict: ACCEPTED
input |
---|
200000 1 760045594 599341056 300698860 ... |
correct output |
---|
8214 |
user output |
---|
8214 |
Test 10
Verdict: ACCEPTED
input |
---|
200000 1000000000 33941840 210038922 596070148 7... |
correct output |
---|
371045814100 |
user output |
---|
371045814100 |
Test 11
Verdict: ACCEPTED
input |
---|
25 1000000000 1000000000 1 1 1 1 1 1 1 1 1 1... |
correct output |
---|
41666667 |
user output |
---|
41666667 |
Test 12
Verdict: ACCEPTED
input |
---|
12 1000000000 1 1 1 1 1 1 1 1 1 1 1 10000000... |
correct output |
---|
90909091 |
user output |
---|
90909091 |
Test 13
Verdict: ACCEPTED
input |
---|
23 1000000000 1000000000 1000000000 10000000... |
correct output |
---|
43478261000000000 |
user output |
---|
43478261000000000 |
Test 14
Verdict: ACCEPTED
input |
---|
23 1000000000 1000000000 1000000000 10000000... |
correct output |
---|
43478261000000000 |
user output |
---|
43478261000000000 |
Test 15
Verdict: ACCEPTED
input |
---|
3 3 10 11 12 |
correct output |
---|
12 |
user output |
---|
12 |