CF_Croc Champ 2012 - Round 2 (Unofficial Div. 2 Edition)

来源:互联网 发布:淘宝联盟推广专区 编辑:程序博客网 时间:2024/06/06 03:02

题目大意:给你这么一些星球,可以进行买卖,只能在一个星球买,另一个星球卖,而且总的买卖操作只能进行一次,然后房间数位k,也就是说最多只能买k件商品。现在问你最多能够收益的金额。直接暴力枚举就行了

#include <cstdlib>#include <cstring>#include <cstdio>#include <cmath>#include <algorithm>#include <vector>#include <string>#include <map>#include <iostream>using namespace std;int a[12][105], b[12][105], c[12][105];int main(){    #ifdef LOCAL    //freopen("in.txt", "r", stdin);    //freopen("out.txt", "w", stdout);    #endifint n, m, k;char str[15];while(scanf("%d%d%d", &n, &m ,&k) != EOF){        for(int i = 1; i <= n; i++){            scanf("%s", str);            for(int j = 1; j <= m; j++){                scanf("%d%d%d", &a[i][j], &b[i][j], &c[i][j]);            }        }        int cur = 0;        int cmp = 0;        for(int i = 1; i <= n; i++){            for(int j = 1; j <= n; j++){                if(i != j){                    vector<int> ve;                    for(int kk = 1; kk <= m; kk++){                        if(a[i][kk] < b[j][kk]){                            for(int l = 1; l <= c[i][kk];l++)                                ve.push_back(b[j][kk] - a[i][kk]);                        }                    }                    sort(ve.rbegin(), ve.rend());                    cur = 0;                    for(int l = 0; l < k && l < ve.size(); l++){                        cur+=ve[l];                    }                    cmp = max(cur,cmp);                }            }        }        printf("%d\n", cmp);}return 0;}


原创粉丝点击