답안 #1078399

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1078399 2024-08-27T16:40:55 Z sqrteipi Detecting Molecules (IOI16_molecules) C++14
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>
using namespace std;
#define int long long

signed[] find_subset(signed l, signed u, signed[] w) {
  int n = w.size(), r = u;
  vector<pair<int, int>> vec;
  for (int i=0; i<n; i++) {
    int k = w[i];
    vec.push_back({k, i});
  }
  sort(vec.begin(), vec.end());
  int mi = 0, ma = 0, li = 0, ri = n - 1;
  while (li < n) {
    mi += vec[li].first, ma += vec[ri].first;
    if (l <= mi && mi <= r) {
      vector<int> ans;
      ans.push_back(li+1);
      for (int i=0; i<=li; i++) ans.push_back(vec[i].second);
      return ans;
    }
    if (l <= ma && ma <= r) {
      vector<int> ans;
      ans.push_back(li+1);
      for (int i=ri; i<n; i++) ans.push_back(vec[i].second);
      return ans;
    }
    if (mi <= l && r <= ma) {
      int sum = mi - vec[li].first;
      for (int i=li; i<n; i++) {
        sum += vec[i].first;
        if (l <= sum && sum <= r) {
          vector<int> ans;
          ans.push_back(li+1);
          for (int j=i-li; j<=i; j++) ans.push_back(vec[i].second);
          return ans;
        }
        sum -= vec[i-li].first;
      }
    }
    li++, ri--;
  }
  return {};
}

Compilation message

molecules.cpp:5:7: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
    5 | signed[] find_subset(signed l, signed u, signed[] w) {
      |       ^
molecules.cpp:5:7: error: structured binding declaration cannot have type 'int'
    5 | signed[] find_subset(signed l, signed u, signed[] w) {
      |       ^~
molecules.cpp:5:7: note: type must be cv-qualified 'auto' or reference to cv-qualified 'auto'
molecules.cpp:5:7: error: empty structured binding declaration
molecules.cpp:5:10: error: expected initializer before 'find_subset'
    5 | signed[] find_subset(signed l, signed u, signed[] w) {
      |          ^~~~~~~~~~~