제출 #1325207

#제출 시각아이디문제언어결과실행 시간메모리
1325207csachy13Detecting Molecules (IOI16_molecules)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;
using ld = long double;

int find_subset(int l, int u, int* w, int n, int* result) {
	// sort(w, w + n);
	vector<array<int, 2>> Z(n);
	vector<int> G(n);
	for (int i=0; i<n; i++) Z[i] = {w[i], i};
	sort(Z.begin(), Z.end());
	// for (int i=0; i<n; i++) G[Z[]]
	
	int left_sum = 0, right_sum = 0;
	for (int i=0; i<=n/2; i++) {
		// cout << i << ' ' << left_sum << ' ' << right_sum << '\n';
		if (max(left_sum, l) <= min(right_sum, u)) {
			// cout << left_sum << ' ' << right_sum << '\n';
			int size_loafer = i; i--;
			while (left_sum < l || left_sum > u) {
				// cout << i << ' ';
				left_sum -= Z[i][0];
				left_sum += Z[n - i - 1][0];
				// cout << left_sum << ' ';
				i--;
			}
			
			i++;
			
			// cout << "[0, " << i << ") U [" << n - i - 1 << ", " << n << ")\n";
			for (int j=0; j<i; j++) result[j] = Z[j][1];
			for (int j=i; j<size_loafer; j++) result[j] = Z[n - j + i - 1][1];
			
			return size_loafer;
		}
		left_sum += Z[i][0]; right_sum += Z[n - i - 1][0];
	}
	return 0;
	
	
}
// int main() {
// 	cin.tie(0); ios_base::sync_with_stdio(0);
	
// 	int loafer[] = {15, 17, 16, 18};int gopher[] = {6, 8, 8, 7};
// 	ll N = find_subset(10, 20, loafer, 4, gopher);
// 	for (int i=0; i<N; i++) {
// 		cout << gopher[i] << ' ';
// 	}
	
	
// 	return 0;
// }

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

molecules.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
molecules_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
/usr/bin/ld: /tmp/ccOif4ge.o: in function `main':
grader.cpp:(.text.startup+0x165): undefined reference to `find_subset(int, int, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status