제출 #1297123

#제출 시각아이디문제언어결과실행 시간메모리
1297123ThunnusPeru (RMI20_peru)C++20
컴파일 에러
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; using i64 = long long; //#define int i64 #define vi vector<int> #define vvi vector<vi> #define vb vector<bool> #define se second #define fi first #define pii pair<int, int> #define sz(x) (int)(x).size() const int MOD = 1e9 + 7; const int B = 23; const int MAXN = 25e5 + 5; i64 pw[MAXN]; inline int hashx(int n, vector<i64> &x){ int ret = 0; for(int i = 0; i < n; i++){ //cout << "i: " << i << " x: " << x[i] << "\n"; x[i] %= MOD; i64 val = (x[i] * pw[n - 1 - i]) % MOD; ret = (ret + val) % MOD; } return ret; } int solve(int n, int k, int *s){ pw[0] = 1; for(int i = 1; i <= n; i++){ pw[i] = (pw[i - 1] * B) % MOD; } vector<i64> dp(n); dp[0] = s[0]; deque<int> dq; multiset<i64> ms; dq.emplace_back(0); ms.emplace(dp[0] + s[1]); for(int i = 1; i < k; i++){ dp[i] = max(dp[i - 1], (i64)s[i]); if(i + 1 < n){ while(!dq.empty() && s[dq.back() + 1] < s[i + 1]){ int idx = dq.back(); ms.erase(ms.find(dp[idx] + s[idx + 1])); dq.pop_back(); } dq.emplace_back(i); ms.emplace(dp[i] + s[i + 1]); } } for(int i = k; i < n; i++){ dp[i] = dp[i - 1] + s[i]; while(!dq.empty() && dq.front() < i - k){ int idx = dq.front(); ms.erase(ms.find(dp[idx] + s[idx + 1])); dq.pop_front(); } dp[i] = min(dp[i], *ms.begin()); if(i + 1 < n){ while(!dq.empty() && s[dq.back() + 1] < s[i + 1]){ int idx = dq.back(); ms.erase(ms.find(dp[idx] + s[idx + 1])); dq.pop_back(); } dq.emplace_back(i); ms.emplace(dp[i] + s[i + 1]); } } return hashx(n, dp); } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n, k; cin >> n >> k; int s[n]; for(int i = 0; i < n; i++){ cin >> s[i]; } cout << solve(n, k, s) << "\n"; return 0; }

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

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