Submission #482308

# Submission time Handle Problem Language Result Execution time Memory
482308 2021-10-24T04:23:28 Z Blistering_Barnacles Cloud Computing (CEOI18_clo) C++14
100 / 100
866 ms 17404 KB
//apig's property
//Happiness can be found, even in the darkest of times, if one only remembers to turn on the light
//El Pueblo Unido Jamas Sera Vencido
//Do or do not... there is no try
//Billions of bilious blue blistering barnacles in a thundering typhoon!
#include<bits/stdc++.h>
#define fast ios_base::sync_with_stdio(0) , cin.tie(0) , cout.tie(0)
#define F first
#define S second
#define pb push_back
#define vll vector< ll >
#define vi vector< int >
#define pll pair< ll , ll >
#define pi pair< int , int >
#define all(s) s.begin() , s.end()
#define sz(s) s.size()
#define str string
#define md ((s + e) / 2)
#define mid ((l + r) / 2)
#define msdp(dp) memset(dp , -1 , sizeof dp)
#define mscl(dp) memset(dp , 0 , sizeof dp)
#define C continue
#define R return
#define B break
#define lx node * 2
#define rx node * 2 + 1
#define br(o) o ; break
#define co(o) o ; continue
#define f F.F
#define v F.S
#define t S.F
#define c S.S
using namespace std;
typedef long long ll;
ll q , dp[500005][5] , b[555555], k, l, m, n, o, p;
map < ll , ll > mp;
vll adj[555555];
const ll mod = 1e9+7;
str s;
pair < pll , pll > a[4005] ;
ll cmp(const pair < pll , pll > &a , const pair < pll , pll > &b){
    if(a.f == b.f)R a.t < b.t ;
    R a.f > b.f ;
}
void solve(){
    ll nn = 0 ;
    cin >> n ;
    o = 0 ;
    for(ll i = 1 ; i <= n ; i++){
        ll cc , ff , vv ;
        cin >> cc >> ff >> vv ;
        nn += cc ;
        a[++o] = {{ff , vv} , {1LL , cc}} ;
    }
    cin >> m ;
    for(ll i = 1 ; i <= m ; i++){
        ll cc , ff , vv ;
        cin >> cc >> ff >> vv ;
        a[++o] = {{ff , vv} , {2LL , cc}} ;
    }
    assert(o == n + m) ;
    ll ans = -1e18 ;
    sort(a + 1 , a + o + 1 , cmp) ;
    for(ll j = 1 ; j <= nn ; j++){
        dp[j][0] = -1e18 ;
    }
    for(ll i = 1 ; i <= o ; i++){
        for(ll j = 0 ; j <= nn ; j++){
            dp[j][i & 1] = dp[j][!(i & 1)] ;
            if(a[i].t == 2){
                if(j + a[i].c <= nn){
                    dp[j][i & 1] = max(dp[j][i & 1] , dp[j + a[i].c][!(i & 1)] + a[i].v) ;
                }
            }
            else {
                if(j - a[i].c >= 0){
                    dp[j][i & 1] = max(dp[j][i & 1] , dp[j - a[i].c][!(i & 1)] - a[i].v) ;
                }
            }
            //cout << i << " " << j << " " << dp[j][i & 1] << " " << a[i].t << endl ;
            ans = max(ans , dp[j][i & 1]) ;
        }
    }
    cout << ans << endl ;
}
int main(){
    fast ;
    q = 1 ;
    //cin >> q ;
    while(q--){
        solve() ;
    }
}
# Verdict Execution time Memory Grader output
1 Correct 8 ms 13260 KB Output is correct
2 Correct 7 ms 13260 KB Output is correct
3 Correct 7 ms 13388 KB Output is correct
4 Correct 7 ms 13388 KB Output is correct
5 Correct 9 ms 13388 KB Output is correct
6 Correct 8 ms 13388 KB Output is correct
7 Correct 11 ms 13400 KB Output is correct
8 Correct 10 ms 13388 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 7 ms 13260 KB Output is correct
2 Correct 7 ms 13308 KB Output is correct
3 Correct 7 ms 13300 KB Output is correct
4 Correct 10 ms 13388 KB Output is correct
5 Correct 58 ms 14312 KB Output is correct
6 Correct 9 ms 13344 KB Output is correct
7 Correct 225 ms 15436 KB Output is correct
8 Correct 41 ms 13780 KB Output is correct
9 Correct 409 ms 16844 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 13260 KB Output is correct
2 Correct 7 ms 13388 KB Output is correct
3 Correct 6 ms 13388 KB Output is correct
4 Correct 7 ms 13388 KB Output is correct
5 Correct 7 ms 13388 KB Output is correct
6 Correct 7 ms 13388 KB Output is correct
7 Correct 7 ms 13412 KB Output is correct
8 Correct 7 ms 13388 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 13264 KB Output is correct
2 Correct 7 ms 13260 KB Output is correct
3 Correct 25 ms 13572 KB Output is correct
4 Correct 9 ms 13464 KB Output is correct
5 Correct 446 ms 15476 KB Output is correct
6 Correct 728 ms 17012 KB Output is correct
7 Correct 732 ms 17020 KB Output is correct
8 Correct 681 ms 16900 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 7 ms 13260 KB Output is correct
2 Correct 7 ms 13388 KB Output is correct
3 Correct 61 ms 14388 KB Output is correct
4 Correct 14 ms 13524 KB Output is correct
5 Correct 692 ms 16952 KB Output is correct
6 Correct 699 ms 17008 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 8 ms 13260 KB Output is correct
2 Correct 7 ms 13260 KB Output is correct
3 Correct 7 ms 13388 KB Output is correct
4 Correct 7 ms 13388 KB Output is correct
5 Correct 9 ms 13388 KB Output is correct
6 Correct 8 ms 13388 KB Output is correct
7 Correct 11 ms 13400 KB Output is correct
8 Correct 10 ms 13388 KB Output is correct
9 Correct 7 ms 13260 KB Output is correct
10 Correct 7 ms 13308 KB Output is correct
11 Correct 7 ms 13300 KB Output is correct
12 Correct 10 ms 13388 KB Output is correct
13 Correct 58 ms 14312 KB Output is correct
14 Correct 9 ms 13344 KB Output is correct
15 Correct 225 ms 15436 KB Output is correct
16 Correct 41 ms 13780 KB Output is correct
17 Correct 409 ms 16844 KB Output is correct
18 Correct 6 ms 13260 KB Output is correct
19 Correct 7 ms 13388 KB Output is correct
20 Correct 6 ms 13388 KB Output is correct
21 Correct 7 ms 13388 KB Output is correct
22 Correct 7 ms 13388 KB Output is correct
23 Correct 7 ms 13388 KB Output is correct
24 Correct 7 ms 13412 KB Output is correct
25 Correct 7 ms 13388 KB Output is correct
26 Correct 9 ms 13264 KB Output is correct
27 Correct 7 ms 13260 KB Output is correct
28 Correct 25 ms 13572 KB Output is correct
29 Correct 9 ms 13464 KB Output is correct
30 Correct 446 ms 15476 KB Output is correct
31 Correct 728 ms 17012 KB Output is correct
32 Correct 732 ms 17020 KB Output is correct
33 Correct 681 ms 16900 KB Output is correct
34 Correct 7 ms 13260 KB Output is correct
35 Correct 7 ms 13388 KB Output is correct
36 Correct 61 ms 14388 KB Output is correct
37 Correct 14 ms 13524 KB Output is correct
38 Correct 692 ms 16952 KB Output is correct
39 Correct 699 ms 17008 KB Output is correct
40 Correct 58 ms 14288 KB Output is correct
41 Correct 138 ms 14764 KB Output is correct
42 Correct 16 ms 13516 KB Output is correct
43 Correct 832 ms 17396 KB Output is correct
44 Correct 806 ms 17400 KB Output is correct
45 Correct 866 ms 17404 KB Output is correct
46 Correct 11 ms 13388 KB Output is correct
47 Correct 17 ms 13516 KB Output is correct
48 Correct 17 ms 13516 KB Output is correct