Submission #3231650


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++14 (GCC 5.4.1)
Score 800
Code Size 3026 Byte
Status AC
Exec Time 22 ms
Memory 6396 KB

Compile Error

./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);
                                 ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 800 / 800
Status
AC × 3
AC × 35
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask_1_01.txt AC 1 ms 256 KB
subtask_1_02.txt AC 4 ms 2688 KB
subtask_1_03.txt AC 4 ms 2944 KB
subtask_1_04.txt AC 10 ms 3328 KB
subtask_1_05.txt AC 13 ms 3456 KB
subtask_1_06.txt AC 16 ms 5784 KB
subtask_1_07.txt AC 5 ms 2816 KB
subtask_1_08.txt AC 18 ms 3968 KB
subtask_1_09.txt AC 4 ms 2816 KB
subtask_1_10.txt AC 13 ms 3604 KB
subtask_1_11.txt AC 17 ms 6268 KB
subtask_1_12.txt AC 9 ms 6040 KB
subtask_1_13.txt AC 17 ms 6268 KB
subtask_1_14.txt AC 22 ms 6204 KB
subtask_1_15.txt AC 21 ms 6264 KB
subtask_1_16.txt AC 18 ms 6396 KB
subtask_1_17.txt AC 19 ms 6268 KB
subtask_1_18.txt AC 22 ms 6272 KB
subtask_1_19.txt AC 22 ms 6332 KB
subtask_1_20.txt AC 18 ms 6032 KB
subtask_1_21.txt AC 11 ms 6268 KB
subtask_1_22.txt AC 16 ms 6100 KB
subtask_1_23.txt AC 20 ms 6268 KB
subtask_1_24.txt AC 21 ms 6264 KB
subtask_1_25.txt AC 17 ms 6268 KB
subtask_1_26.txt AC 18 ms 6268 KB
subtask_1_27.txt AC 21 ms 6268 KB
subtask_1_28.txt AC 21 ms 6272 KB
subtask_1_29.txt AC 1 ms 256 KB