| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1342364 | aritro_ | 축제 (IOI25_festival) | C++20 | 39 ms | 5716 KiB |
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'
#define pb push_back
#define ff first
#define ss second
#define all(a) a.begin(),a.end()
vector<int> max_coupons(int s,vector<int>p,vector<int>t){
int money=s;
vector<pair<int,int>> mul1,mul2;
int n=p.size();
for(int i=0;i<n;i++){
if(t[i]==1) mul1.pb({p[i],i});
if(t[i]==2) mul2.pb({p[i],i});
}
vector<int> ans;
sort(all(mul1));
sort(all(mul2));
int i=0,j=0;
for(;i<mul1.size()||j<mul2.size();){
if(i==mul1.size()||money<mul1[i].ff){
//can only buy type 2
if(money<mul2[j].ff) break;
money-=mul2[j].ff;
money*=2;
ans.pb(mul2[j].ss);
j++;
continue;
}
if(j==mul2.size()||money<mul2[j].ff){
//can only buy type 1
if(money<mul1[i].ff) break;
money-=mul1[i].ff;
ans.pb(mul1[i].ss);
i++;
continue;
}
int op1=money-mul1[i].ff;
int op2=money-mul2[j].ff;
op2*=2;
if(op1>op2){
money=op1;
ans.pb(mul1[i].ss);
i++;
}else{
money=op2;
ans.pb(mul2[j].ss);
j++;
}
}
return ans;
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
