hiho week 83 register

Ended

Participants:67

Verdict:Time Limit Exceeded
Score:0 / 100
Submitted:2016-01-31 13:07:48

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <vector>
#include <utility>
using namespace std;
#define MAXN 205
#define MAXB 2005
#define M 0
#define F 1
class node
{
public:
    int v, s, id;
    node(int _v = 0, int _s = 0, int _id = -1) :v(_v), s(_s), id(_id) {}
};
int lim[2], cnt[2] = { 0 }, p[2][MAXB];
int f[2][MAXN][MAXN][MAXB] = { 0 }, g[2][MAXN][MAXN][MAXB];
vector<node> vec[2];
void dfs(int s, int i, int j, int k, vector<int> &ans)
{
    if (j > 0) {
        i = g[s][i][j][k];
        if (f[s][i - 1][j][k] < f[s][i - 1][j - 1][k - vec[s][i].v] + vec[s][i].s) {
            ans.push_back(vec[s][i].id);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX