제출 #524747

#제출 시각아이디문제언어결과실행 시간메모리
524747vijayDetecting Molecules (IOI16_molecules)C++98
컴파일 에러
0 ms0 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
#include <bitset>
using namespace std;

typedef long long ll;
typedef pair<int, int> pi;
typedef pair<ll, ll> pl;
typedef vector<int> vi;

#define trav(a, x) for (auto& a: x)
#define all(x) begin(x), end(x)
#define mp make_pair
#define pb push_back
#define f first
#define s second
#define NUM(a) (sizeof(a)/sizeof(*a))

vector<int> find_subset(int l, int u, vector<int> w){

  vector<int> result;
  int n = w.size();
  vector<pair<int, int> > a(n, pair<int, int>());
  for(int i = 0; i < n; i++){
    a[i] = mp(w[i], i);
  }
  sort(a.begin(), a.end());
  //
  // for(int i = 0; i < n; i++){
  //   cout << a[i].f << " " << a[i].s << "\n";
  // }

  vector<int> minSum(n + 1, 0);
  vector<int> maxSum(n + 1, 0);
  for(int k = 1; k <= n; k++){
    minSum[k] = minSum[k - 1] + a[k - 1].f;
    maxSum[k] = maxSum[k - 1] + a[n - k].f;
  }

  for(int k = 1; k <= n; k++){
    if(minSum[k] <= u && maxSum[k] >= l){
      // this could fit within the range!
      // System.out.println("this could fit within the range! " + k);
      int currSum = minSum[k];
      int idx = k;
      while(idx <= n){
        if(currSum >= l && currSum <= u){
          // System.out.println(k);
          for(int i = idx - k; i < idx; i++){
            result.pb(a[i].s);
          }
          return result;
        }

        if(idx == n){
          break;
        }

        currSum += a[idx].f;
        currSum -= a[idx - k].f;
        idx++;
      }
    }
  }

  return result;
}

int main(){
  // ios_base::sync_with_stdio(0);
  // cin.tie(0);

  // vector<int> tc;
  // tc.pb(6);tc.pb(8);tc.pb(8);tc.pb(7);
  // vector<int> v = find_subset(15, 17, tc);
  // for(auto& a: v){
  //   cout << a << "\n";
  // }
}

컴파일 시 표준 에러 (stderr) 메시지

/usr/bin/ld: /tmp/ccyo8vyb.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccmpfcad.o:molecules.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status