Submission #2960238
Source Code Expand
// {{{
#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <complex>
#include <vector>
#include <list>
#include <set>
#include <queue>
#include <stack>
#include <map>
#include <string>
#include <algorithm>
#include <numeric>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define FOR(i, a, b) for(int i = (a); i < (b); i++)
#define FORR(i, a, b) for(int i = (a); i >= (b); i--)
#define REP(i, n) for(int i = 0; i < (n); i++)
#define REPR(i, n) for(int i = (n); i >= 0; i--)
#define ALL(x) (x).begin(), (x).end()
//#if __cplusplus >= 201103
typedef long long ll;
//#endif
typedef pair<int, int> P;
typedef pair<int, P> IP;
int dx[] = {1, -1, 0, 0};
int dy[] = {0, 0, 1, -1};
const int INF = 100000000;
//#if __cplusplus >= 201103
const ll LINF = 10000000000000000ll;
//#endif
const int MOD = 1e9 + 7;
const double EPS = 1e-9;
// }}}
int n, m;
int companies[50000][4];
int people[50000][3];
int dp[110][110][110];
void init()
{
}
void solve()
{
REP(i, n){
int val = companies[i][3];
dp[companies[i][0]][companies[i][1]][companies[i][2]] = max(val,
dp[companies[i][0]][companies[i][1]][companies[i][2]]);
}
REP(i,101){
REP(j,101){
REP(k,101){
if(i >= 1) dp[i][j][k] = max(dp[i][j][k], dp[i-1][j][k]);
if(j >= 1) dp[i][j][k] = max(dp[i][j][k], dp[i][j-1][k]);
if(k >= 1) dp[i][j][k] = max(dp[i][j][k], dp[i][j][k-1]);
//dp[i][j][k] = max(dp[i][j][k],
// max(dp[i-1][j][k], max(dp[i][j-1][k], dp[i][j][k-1])));
}
}
}
//REP(i, 101){
// REP(j, 101){
// REP(k, 101){
// dp[i+1][j][k] = max(dp[i+1][j][k], dp[i][j][k]);
// dp[i][j+1][k] = max(dp[i][j+1][k], dp[i][j][k]);
// dp[i][j][k+1] = max(dp[i][j][k+1], dp[i][j][k]);
// }
// }
//}
REP(i, m){
cout << dp[people[i][0]][people[i][1]][people[i][2]] << endl;
}
}
int main()
{
cin.tie(0);
ios::sync_with_stdio(false);
cin >> n >> m;
REP(i, n){
REP(j, 4) cin >> companies[i][j];
}
REP(i, m){
REP(j, 3) cin >> people[i][j];
}
solve();
return 0;
}
// vim:set foldmethod=marker:
Submission Info
Submission Time |
|
Task |
C - Optimal Recommendations |
User |
rrrccc |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
2471 Byte |
Status |
AC |
Exec Time |
106 ms |
Memory |
7296 KB |
Judge Result
Set Name |
All |
Score / Max Score |
100 / 100 |
Status |
|
Set Name |
Test Cases |
All |
10-random-00.txt, 10-random-01.txt, 10-random-02.txt, 10-random-03.txt, 10-random-04.txt, 20-absW-00.txt, 20-absW-01.txt, 20-absW-02.txt, 20-absW-03.txt, 20-absW-04.txt, 30-balance-00.txt, 30-balance-01.txt, 30-balance-02.txt, 30-balance-03.txt, 30-balance-04.txt, 40-limit_dim-00.txt, 40-limit_dim-01.txt, 40-limit_dim-02.txt, 40-limit_dim-03.txt, 40-limit_dim-04.txt, 40-limit_dim-05.txt, 40-limit_dim-06.txt, Corner1.txt, Sample1.txt |
Case Name |
Status |
Exec Time |
Memory |
10-random-00.txt |
AC |
104 ms |
7296 KB |
10-random-01.txt |
AC |
6 ms |
6400 KB |
10-random-02.txt |
AC |
63 ms |
6784 KB |
10-random-03.txt |
AC |
79 ms |
6784 KB |
10-random-04.txt |
AC |
28 ms |
6656 KB |
20-absW-00.txt |
AC |
102 ms |
7040 KB |
20-absW-01.txt |
AC |
6 ms |
6400 KB |
20-absW-02.txt |
AC |
47 ms |
6784 KB |
20-absW-03.txt |
AC |
89 ms |
6656 KB |
20-absW-04.txt |
AC |
34 ms |
6400 KB |
30-balance-00.txt |
AC |
106 ms |
7296 KB |
30-balance-01.txt |
AC |
7 ms |
6400 KB |
30-balance-02.txt |
AC |
36 ms |
6528 KB |
30-balance-03.txt |
AC |
48 ms |
7040 KB |
30-balance-04.txt |
AC |
81 ms |
6784 KB |
40-limit_dim-00.txt |
AC |
106 ms |
7296 KB |
40-limit_dim-01.txt |
AC |
105 ms |
7296 KB |
40-limit_dim-02.txt |
AC |
105 ms |
7296 KB |
40-limit_dim-03.txt |
AC |
104 ms |
7296 KB |
40-limit_dim-04.txt |
AC |
104 ms |
7296 KB |
40-limit_dim-05.txt |
AC |
104 ms |
7296 KB |
40-limit_dim-06.txt |
AC |
104 ms |
7296 KB |
Corner1.txt |
AC |
6 ms |
6400 KB |
Sample1.txt |
AC |
6 ms |
6400 KB |