Submission #899680

# Submission time Handle Problem Language Result Execution time Memory
899680 2024-01-06T20:55:26 Z trMatherz Happiness (Balkan15_HAPPINESS) C++17
40 / 100
422 ms 524288 KB
//#include <iostream> //cin, cout
#include "happiness.h"
/*
#include <fstream>
std::ifstream cin ("ex.in");
std::ofstream cout ("ex.out");
*/




// includes
#include <cmath> 
#include <set>
#include <map>
#include <queue>
#include <string>
#include <vector>
#include <array>
#include <algorithm>
#include <numeric>
#include <iomanip>
#include <unordered_set>
#include <stack>
#include <ext/pb_ds/assoc_container.hpp>
#include <random>
#include <chrono>



//usings 
using namespace std;
using namespace __gnu_pbds;


// misc
#define ll long long
#define pb push_back
#define pq priority_queue
#define ub upper_bound
#define lb lower_bound
template<typename T, typename U> bool emin(T &a, const U &b){ return b < a ? a = b, true : false; }
template<typename T, typename U> bool emax(T &a, const U &b){ return b > a ? a = b, true : false; }
typedef uint64_t hash_t;

// vectors
#define vi vector<int>
#define vvi vector<vi>
#define vvvi vector<vvi>
#define vpii vector<pair<int, int>>
#define vvpii vector<vector<pair<int, int>>>
#define vppipi vector<pair<int, pair<int, int>>>
#define vl vector<ll>
#define vvl vector<vl>
#define vvvl vector<vvl>
#define vpll vector<pair<ll, ll>>
#define vb vector<bool>
#define vvb vector<vb>
#define vs vector<string>
#define sz(x) (int)x.size()
#define rz(x,y) x.resize(y)
#define all(x) x.begin(), x.end()


// pairs
#define pii pair<int, int>
#define pll pair<ll, ll>
#define mp make_pair
#define f first
#define s second

// sets
#define si set<int>
#define sl set<ll>
#define ss set<string>
#define in insert
template <class T> using iset = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

// maps
#define mii map<int, int>
#define mll map<ll, ll>

// loops
#define FR(x, z, y) for (int x = z; x < y; x++)
#define FRe(x, z, y) FR(x, z, y + 1)
#define F(x, y) FR(x, 0, y)
#define Fe(x, y) F(x, y + 1)
#define A(x, y) for(auto &x : y)

struct Node {
    ll l, r, v = 0;
    Node *lc = nullptr, *rc = nullptr;
    Node(ll tl, ll tr) : l(tl), r(tr) {}

   

    void put(ll x, ll z){
        v += z;
        if(l != r){
            int m = (l + r) / 2;
            if(x > m) {
                if(!rc) rc = new Node(m + 1, r);
                rc->put(x, z);
            } else {
                if(!lc) lc = new Node(l, m);
                lc->put(x, z);
            }
        }
    }

    ll get(ll x, ll y){
        if(r < x || l > y) return 0;
        if(x <= l && r <= y) return v;
        ll ret = 0;
        if(lc) ret += lc->get(x, y);
        if(rc) ret += rc->get(x, y);
        return ret;
    }
};
Node *root;
bool check(){
    ll cur = 1, ma = root->v;
    while(cur < ma){
        ll t = root->get(0, cur - 1);
        if(t < cur) return false;
        cur = t + 1;
    }
    return true;
}

bool init(int coinsCount, long long maxCoinSize, long long coins[]){
    root = new Node(0, maxCoinSize - 1);
    F(i, coinsCount) root->put(coins[i] - 1, coins[i]);
    return check();
}

bool is_happy(int event, int coinsCount, long long coins[]){
    F(i, coinsCount) root->put(coins[i] - 1, event * coins[i]);
    return check();
}

Compilation message

grader.cpp: In function 'int main()':
grader.cpp:16:12: warning: unused variable 'max_code' [-Wunused-variable]
   16 |  long long max_code;
      |            ^~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Runtime error 392 ms 524288 KB Execution killed with signal 9
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 293 ms 37360 KB Output is correct
7 Correct 270 ms 36996 KB Output is correct
8 Correct 277 ms 37456 KB Output is correct
9 Correct 422 ms 48988 KB Output is correct
10 Correct 417 ms 52788 KB Output is correct
11 Correct 145 ms 37004 KB Output is correct
12 Correct 115 ms 37204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Runtime error 392 ms 524288 KB Execution killed with signal 9
7 Halted 0 ms 0 KB -