Submission #494008

#TimeUsernameProblemLanguageResultExecution timeMemory
494008TeaTimeRobots (IOI13_robots)C++17
0 / 100
1 ms312 KiB
    #include "robots.h"
    #include <iostream>
    #include <string>
    #include <algorithm>
    #include <vector>
    #include <set>
    #include <map>
     
    using namespace std;
     
    typedef long long ll;
    typedef long double ld;
     
    #define fastInp cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);
     
    int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) {
        ll mx = 1e6 + 100;
        int l = 0, r = mx;
        while (r - l > 1) {
            int mid = (l + r) / 2;
            
            vector<pair<int, int>> vec;
            vector<int> skip(T);
            for (int i = 0; i < T; i++) vec.push_back({ W[i], S[i] });
     
            map<int, int> st;
            vector<ll> svd;
            for (int i = 0; i < A; i++) svd.push_back(X[i]);
            reverse(svd.begin(), svd.end());
     
            for (int i = 0; i < B; i++) {
                st[Y[i]] += mid;
            }
     
            sort(vec.rbegin(), vec.rend());
     
            for (int i = 0; i < T; i++) {
                if (st.upper_bound(vec[i].second) != st.end()) {
                    ll x = (*st.upper_bound(vec[i].second)).first;
                    st[x]--;
                    skip[i] = 1;
                    if (st[x] == 0) st.erase(x);
                }
            }
     
            ll pt = 0, pt2 = 0;
            bool f = 1;
            for (int i = 0; i < T; i++) {
                if (skip[i]) continue;
     
                if (svd.size() > pt && svd[pt] > vec[i].first) {
                    pt2++;
                    if (pt2 == mid) {
                        pt2 = 0;
                        pt++;
                    }
                } else {
                    f = 0;
                    break;
                }
            }
     
            if (f) {
                r = mid;
            } else {
                l = mid;
            }
        }
        
     
        if (r == mx) {
            return -1;
        } else {
            return r;
        }
    }

Compilation message (stderr)

robots.cpp: In function 'int putaway(int, int, int, int*, int*, int*, int*)':
robots.cpp:51:32: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   51 |                 if (svd.size() > pt && svd[pt] > vec[i].first) {
      |                     ~~~~~~~~~~~^~~~
#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...