제출 #1183961

#제출 시각아이디문제언어결과실행 시간메모리
1183961sano휴가 (IOI14_holiday)C++20
컴파일 에러
0 ms0 KiB
//#pragma GCC optimize("O3")
//#pragma GCC target("tune=native")
//#pragma GCC optimize("O3,unroll-loops")
//#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")

//#include "holiday.h"
#include<iostream>
#include<vector>
#include<queue>
#include<deque>
#include<string>
#include<fstream>
#include<algorithm>
#include <iomanip>
#include<map>
#include <set>
#include <unordered_map>
#include <stack>
#include <unordered_set>
#include <cmath>
#include <cstdint>
#include <cassert>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>

#define shit short int
#define ll long long
//#define int ll
#define For(i, n) for(int i = 0; i < (int)n; i++)
#define ffor(i, a, n) for(int i = (int)a; i < (int)n; i++)
#define rfor(i, n) for(int i = (int)n; i >= (int)0; i--)
#define rffor(i, a, n) for(int i = (int)n; i >= (int)a; i--)
#define vec vector
#define ff first
#define ss second
#define pb push_back
#define pii pair<int, int>
#define NEK 2000000000
#define mod 1000000007
#define mod2 1000000009
#define rsz resize
#define prv1 47
#define prv2 43
#define D 8
#define trav(a,x) for (auto& a: x)
#define pb push_back
#define ub upper_bound
#define lb lower_bound
#define all(x) (x).begin(), (x).end()
#define sig 0.0000001

using namespace std;
//using namespace __gnu_pbds;

//template <typename T1, typename T2>
//using indexed_set = tree<pair<T1, T2>, null_type, less<pair<T1, T2>>, rb_tree_tag, tree_order_statistics_node_update>;

ll findMaxAttraction(int n, int start, int d, int a[]) {
	vec<vec<ll>> dp1(n - start, vec<ll>(d + 1, 0));
	vec<vec<ll>> dp3(n - start, vec<ll>(d + 1, 0));
	vec<vec<ll>> dp2(start, vec<ll>(d + 1, 0));
	vec<vec<ll>> dp4(start, vec<ll>(d + 1, 0));
	rfor(i, dp1.size() - 1) {
		ffor(j, 1, dp1[i].size()) {
			dp1[i][j] = a[i + start];
			if (i == dp1.size() - 1) continue;
			dp1[i][j] = max(dp1[i][j], dp1[i + 1][j - 1]);
			if (j == 1) continue;
			dp1[i][j] = max(dp1[i][j], dp1[i + 1][j - 2] + a[i + start]);
		}
	}
	if (start == 0) {
		return dp1[0][d];
	}
	rfor(i, dp3.size() - 1) {
		ffor(j, 1, dp3[i].size()) {
			dp3[i][j] = a[i + start];
			if (i == dp3.size() - 1) continue;
			if (j == 1) continue;
			dp3[i][j] = max(dp3[i][j], dp3[i + 1][j - 2]);
			if (j == 2) continue;
			dp3[i][j] = max(dp3[i][j], dp3[i + 1][j - 3] + a[i + start]);
		}
	}
	For(i, dp2.size()) {
		ffor(j, 1, dp2[i].size()) {
			dp2[i][j] = a[i];
			if (i == 0) continue;
			dp2[i][j] = max(dp2[i][j], dp2[i - 1][j - 1]);
			if (j == 1) continue;
			dp2[i][j] = max(dp2[i][j], dp2[i - 1][j - 2] + a[i]);
		}
	}
	rfor(i, dp4.size() - 1) {
		ffor(j, 1, dp4[i].size()) {
			dp4[i][j] = a[i];
			if (i == 0) continue;
			if (j == 1) continue;
			dp4[i][j] = max(dp4[i][j], dp4[i - 1][j - 2]);
			if (j == 2) continue;
			dp4[i][j] = max(dp4[i][j], dp4[i - 1][j - 3] + a[i]);
		}
	}
	ll maxi = 0;
	maxi = max(dp1[0][d], dp2.back()[d]);
	For(i, d) {
		maxi = max(maxi, max(dp3[0][i] + dp2.back()[d - i - 1], dp4.back()[i] + dp1[0][d - i - 1]));
	}
	return maxi;
}

signed main() {
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	int t;
	t = 1;
	For(i, t) {
		int n, d, start; cin >> n >> d >> start;
		int a[100];
		For(i, n) cin >> a[i];
		cout << findMaxAttraction(n, start, d, a);
	}
	return 0;
}

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

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