답안 #835347

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
835347 2023-08-23T13:36:43 Z azatega 사탕 분배 (IOI21_candies) C++17
컴파일 오류
0 ms 0 KB
#include "candies.h"
#include <vector>

using namespace std;


vector<int> distribute_candies(vector<int> c, vector<int> l,
                                    vector<int> r, vector<int> v) {
    int n = c.size();
    vector<int> s(n);

    if(n <= 2000){
        for(int i = 0; i < n; i++){
            for(int j = 0; j < v.size(); j++){
                if(i >= l[j] && i <= r[j]){
                    s[i] += v[j];
                    s[i] = max(s[i], 0);
                    s[i] = min(s[i], c[i]);
                }
            }
        }

    }else{
        vector<long long> ch(n+5);

        for(int j = 0; j < v.size(); j++){
            ch[l[j]] += v[j];
            ch[r[j] + 1] -= v[j];
        }

        long long curr = 0;
        for(int i = 0; i < n; i++){
            curr += ch[i];
            s[i] = min(c[i], curr);
        }
    }

    return s;
}

Compilation message

candies.cpp: In function 'std::vector<int> distribute_candies(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
candies.cpp:14:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |             for(int j = 0; j < v.size(); j++){
      |                            ~~^~~~~~~~~~
candies.cpp:26:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |         for(int j = 0; j < v.size(); j++){
      |                        ~~^~~~~~~~~~
candies.cpp:34:34: error: no matching function for call to 'min(__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type&, long long int&)'
   34 |             s[i] = min(c[i], curr);
      |                                  ^
In file included from /usr/include/c++/10/vector:60,
                 from candies.h:1,
                 from candies.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
candies.cpp:34:34: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   34 |             s[i] = min(c[i], curr);
      |                                  ^
In file included from /usr/include/c++/10/vector:60,
                 from candies.h:1,
                 from candies.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
candies.cpp:34:34: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   34 |             s[i] = min(c[i], curr);
      |                                  ^