이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
typedef pair<ll, ll> pll;
typedef pair<int, int> pii;
int n, m;
struct Dish {
ll a, s, p;
};
vector<Dish> d1, d2;
vector<ll> p1, p2;
ll dp[2001][2001];
ll getTime(int i1, int i2) {
return p1[i1]+p2[i2];
}
ll explore(int i1, int i2) {
if (i1 == n && i2 == m) {
return 0;
}
ll &ref = dp[i1][i2];
if (ref != -1) return ref;
ll res = 0;
bool iset = 0;
if (i1 != n) {
if (!iset) res = (getTime(i1, i2)+d1[i1].a <= d1[i1].s ? d1[i1].p : 0)+explore(i1+1, i2);
res = max(res, (getTime(i1, i2)+d1[i1].a <= d1[i1].s ? d1[i1].p : 0)+ explore(i1+1, i2));
iset = 1;
}
if (i2 != m) {
if (!iset) res = (getTime(i1, i2)+d2[i2].a <= d2[i2].s ? d2[i2].p : 0)+ explore(i1, i2+1);
res = max(res, (getTime(i1, i2)+d2[i2].a <= d2[i2].s ? d2[i2].p : 0)+ explore(i1, i2+1));
}
ref = res;
return res;
}
void solve() {
cin >> n >> m;
ll a, s, p;
p1.assign(n+1, 0);
p2.assign(m+1, 0);
for (int i = 0; i < n; i++)
{
cin >> a >> s >> p;
Dish dd = Dish {a, s, p};
d1.push_back(dd);
p1[i+1] = p1[i]+a;
}
for (int i = 0; i < m; i++)
{
cin >> a >> s >> p;
Dish dd = Dish {a, s, p};
d2.push_back(dd);
p2[i+1] = p2[i]+a;
}
memset(dp, -1, sizeof dp);
cout << explore(0, 0) << endl;
}
int main() {
cin.tie(0);
ios::sync_with_stdio(0);
solve();
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
dishes.cpp: In function 'll explore(int, int)':
dishes.cpp:27:13: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long unsigned int'} and 'int' [-Wsign-compare]
27 | if (ref != -1) return ref;
| ~~~~^~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |