# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1258244 | mkkkkkkkk | Festival (IOI25_festival) | C++20 | 49 ms | 7604 KiB |
#include "festival.h"
#include <bits/stdc++.h>
using namespace std;
std::vector<int> max_coupons(int A, std::vector<int> P, std::vector<int> T)
{
vector<pair<long long,long long>> vec1,vec2;
for(int i=0;i<P.size();i++)
{
if(T[i]==1)
vec1.push_back({P[i],i});
else
vec2.push_back({P[i],i});
}
vector<int> res;
bool pos=false;
int i=0,j=0;
long long br=A;
long long n=P.size();
sort(vec2.begin(),vec2.end());
sort(vec1.begin(),vec1.end());
for(;j<vec2.size();j++)
{
if(br<vec2[j].first)
break;
if((long long)br-vec2[j].first>=(long long)10000000000*n/2)
{
pos=true;
break;
}
else if(br-vec2[j].first>=br/2)
{
res.push_back(vec2[j].second);
br=(br-vec2[j].first)*2;
}
else
break;
}
if(pos==true)
{
for(;i<vec1.size();i++)
res.push_back(vec1[i].second);
for(;j<vec2.size();j++)
res.push_back(vec2[j].second);
return res;
}
else
{
for(;i<vec1.size() || j<vec2.size();)
{
if(i==vec1.size())
{
if(br<vec2[j].first)
break;
else
{
br=(br-vec2[j].first)*2;
res.push_back(vec2[j].second);
j++;
}
}
else if(j==vec2.size())
{
if(br<vec1[i].first)
break;
else
{
br-=vec1[i].first;
res.push_back(vec1[i].second);
i++;
}
}
else
{
if(br<vec1[i].first && br<vec2[j].first)
break;
long long br1=br-vec1[i].first;
long long br2=(br-vec2[j].first)*2;
if(br1>br2)
{
res.push_back(vec1[i].second);
i++;
}
else
{
res.push_back(vec2[j].second);
j++;
}
}
}
}
if(br<0)
cout<<2/0;
return res;
}
Compilation message (stderr)
# | 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... |