Submission #1258133

#TimeUsernameProblemLanguageResultExecution timeMemory
1258133garam1732Festival (IOI25_festival)C++20
0 / 100
1093 ms3760 KiB
#include "festival.h"
#include <bits/stdc++.h>
using namespace std;

#define ff first
#define ss second
#define bl ' '
#define endl '\n'
#define all(v) (v).begin(), (v).end()
#define comp(v) (v).erase(unique(all(v)), (v).end())
#define lbd(v,x) lower_bound(all(v), (x))-(v).begin()
#define ubd(v,x) upper_bound(all(v), (x))-(v).begin()

typedef long long ll;
typedef pair<int, int> pi;
typedef pair<pi, int> pii;
typedef pair<int, pi> ipi;
typedef pair<pi, pi> pipi;
typedef pair<ll, ll> pll;

const int MAXN = 100100*2;
const ll MOD = 1e9+7;
const ll INF = 1e9+10;

struct Garam {
    ll p, t, n;

    bool operator < (const Garam& x) const {
        if((t==1)^(x.t==1)) return x.t==1;
        if(t==1) return p<x.p;
        return p*t*(x.t-1) < x.p*x.t*(t-1);
    }
} arr[MAXN];

vector<int> res;
bool chk[MAXN];
std::vector<int> max_coupons(int A, std::vector<int> P, std::vector<int> T) {
    int n = P.size();
    
    int cur=A;
    while(res.size() < n) {
        pi nx = pi(-1,0);
        for(int i=0; i<n; i++) {
            if(chk[i]) continue;
            nx=max(nx, pi(T[i]*(cur-P[i]), i));
        }

        if(nx.ff==-1) break;

        chk[nx.ss]=1; cur=nx.ff;
    }
    
    return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...