CSES - Aalto Competitive Programming 2024 - wk1 - Wed - Results
Submission details
Task:Entrepreneur
Sender:aalto2024a_006
Submission time:2024-09-04 17:47:38 +0300
Language:C++17
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#6ACCEPTED0.00 sdetails
#7ACCEPTED0.00 sdetails
#8ACCEPTED0.07 sdetails
#9ACCEPTED0.12 sdetails
#10ACCEPTED0.18 sdetails
#11ACCEPTED0.00 sdetails
#12ACCEPTED0.00 sdetails
#13ACCEPTED0.00 sdetails
#14ACCEPTED0.00 sdetails
#15ACCEPTED0.00 sdetails

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