답안 #510064

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
510064 2022-01-14T16:03:40 Z CraniXort Ice Hockey World Championship (CEOI15_bobek) C++17
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>

#define fin std::cin
#define fout std::cout

// std::ifstream fin("hockey.in");
// std::ofstream fout("hockey.out");

void compute(std::vector <long long>& v) {
    std::vector <long long> x;
    std::stack <long long> toAdd;
    x.push_back(0);

    for(auto value: v) {
        for(auto sum: x)
            toAdd.push(value + sum);
        while(toAdd.empty() == false) {
            x.push_back(toAdd.top());
            toAdd.pop();
        }
    }

    std::sort(x.begin(), x.end());
    v = x;
}

void print(std::vector <int> &v) {
    for(int i: v)
        fout << i << ' ';
    fout << '\n';
}

int main() {
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(NULL);

    int n;
    long long maxsum;

    fin >> n >> maxsum;

    std::vector <int> a, b;
    for(int i = 0, value; i < n / 2; i ++) {
        fin >> value;
        a.push_back(value);
    }

    for(int i = n / 2, value; i < n; i ++){
        fin >> value;
        b.push_back(value);
    }

    compute(a);
    compute(b);

    // print(a);
    // print(b);
    long long ans = 0;
    for(int i = 0, j = b.size() - 1; i < a.size(); i ++) {
        while(j >= 0 and a[i] + b[j] > maxsum)
            j --;
        ans = ans + (j + 1);
    }

    fout << ans << '\n';


    return 0;
}

Compilation message

bobek.cpp: In function 'int main()':
bobek.cpp:53:13: error: invalid initialization of reference of type 'std::vector<long long int>&' from expression of type 'std::vector<int>'
   53 |     compute(a);
      |             ^
bobek.cpp:9:39: note: in passing argument 1 of 'void compute(std::vector<long long int>&)'
    9 | void compute(std::vector <long long>& v) {
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~^
bobek.cpp:54:13: error: invalid initialization of reference of type 'std::vector<long long int>&' from expression of type 'std::vector<int>'
   54 |     compute(b);
      |             ^
bobek.cpp:9:39: note: in passing argument 1 of 'void compute(std::vector<long long int>&)'
    9 | void compute(std::vector <long long>& v) {
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~^
bobek.cpp:59:40: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |     for(int i = 0, j = b.size() - 1; i < a.size(); i ++) {
      |                                      ~~^~~~~~~~~~