Submission #3231636


Source Code Expand

#include <cstdio>
#include <cctype>
#include <cstring>

//User's Lib

#include <array>
#include <queue>
#include <algorithm>

using namespace std;

char buf[11111111], *pc = buf;

struct Main_Guard{
	Main_Guard(){
		fread(buf, 1, 11111111, stdin);
	}
	Main_Guard(const char *ins){
		freopen(ins, "r", stdin);
		fread(buf, 1, 11111111, stdin);
	}
	Main_Guard(const char *ins, const char *ous){
		freopen(ins, "r", stdin);
		freopen(ous, "w", stdout);
		fread(buf, 1, 11111111, stdin);
	}
	~ Main_Guard(){
		fclose(stdin), fclose(stdout);
	}
};

static inline int read(){
    int num = 0;
    char c, sf = 1;
    while(isspace(c = *pc++));
    if(c == 45) sf = -1, c = *pc ++;
    while(num = num * 10 + c - 48, isdigit(c = *pc++));
    return num * sf;
}

namespace LKF{
    template <typename T>
    extern inline T abs(T tar){
        return tar < 0 ? -tar : tar;
    }
    template <typename T>
    extern inline void swap(T &a, T &b){
        T t = a;
        a = b;
        b = t;
    }
    template <typename T>
    extern inline void upmax(T &x, const T &y){
        if(x < y) x = y;
    }
    template <typename T>
    extern inline void upmin(T &x, const T &y){
        if(x > y) x = y;
    }
    template <typename T>
    extern inline T max(T a, T b){
        return a > b ? a : b;
    }
    template <typename T>
    extern inline T min(T a, T b){
        return a < b ? a : b;
    }
}

//Source Code

const int MAXN = 101010;

int x, y, z, n;

struct Data{
    int a, b, c;
    Data(){}
    Data(const int &_a, const int &_b, const int &_c) : a(_a), b(_b), c(_c) {}
    inline bool operator < (const Data &tar) const {
        return a - b > tar.a - tar.b;
    }
}num[MAXN];

template<typename _Tp, typename _Sequence = vector<_Tp>,
        typename _Compare  = less<typename _Sequence::value_type> >
inline void clear(priority_queue<_Tp, _Sequence, _Compare> &tar){
    priority_queue<_Tp, _Sequence, _Compare> tmp;
    swap(tmp, tar);
}

long long dp[MAXN];

int main(){
    Main_Guard main_guard;
    n = (x = read()) + (y = read()) + (z = read());
    long long sumc = 0, sum = 0, ans = 0;
    for(int i = 1; i <= n; i++){
        num[i].a = read(), num[i].b = read(), num[i].c = read();
        sumc += num[i].c;
    }
    sort(num + 1, num + 1 + n);
    priority_queue<int, vector<int>, greater<int> > pq;
    for(int i = 1; i <= x; i++){
        sum += num[i].a - num[i].c;
        pq.push(num[i].a - num[i].c);
    }
    for(int i = x + 1; i <= n - y + 1; i++){
        dp[i] = sum;
        sum += num[i].a - num[i].c;
        pq.push(num[i].a - num[i].c);
        sum -= pq.top();
        pq.pop();
    }
    clear(pq);
    sum = 0;
    for(int i = n; i >= n - y + 1; i--){
        sum += num[i].b - num[i].c;
        pq.push(num[i].b - num[i].c);
    }
    for(int i = n - y; i >= x; i--){
        LKF::upmax(ans, sumc + dp[i + 1] + sum);
        sum += num[i].b - num[i].c;
        pq.push(num[i].b - num[i].c);
        sum -= pq.top();
        pq.pop();
    }
    printf("%lld\n", ans);
    return 0;
}

Submission Info

Submission Time
Task C - Coins
User luogu_bot3
Language C++ (GCC 5.4.1)
Score 0
Code Size 3156 Byte
Status CE

Compile Error

In file included from /usr/include/c++/5/array:35:0,
                 from ./Main.cpp:7:
/usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
 #error This file requires compiler and library support \
  ^
./Main.cpp:88:64: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11
 inline void clear(priority_queue<_Tp, _Sequence, _Compare> &tar){
                                                                ^
./Main.cpp: In constructor ‘Main_Guard::Main_Guard()’:
./Main.cpp:17:33: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
   fread(buf, 1, 11111111, stdin);
                                 ^