Submission #1364330

#TimeUsernameProblemLanguageResultExecution timeMemory
1364330kokoxuyaFestival (IOI25_festival)C++20
Compilation error
0 ms0 KiB
#include "festival.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define mp make_pair
#define lsb(x) (x&(-x))
#define pii pair<int,int>
#define ss second
#define ff first
#define piii pair<int,pii>
#define debu(x) (cerr << #x  << " = "<< x << "\n")
#define debu2(x,y) (cerr << #x  << " = "<< x << " " << #y << " = " << y << "\n")
#define debu3(x,y,z) (cerr << #x  << " = "<< x << " " << #y << " = " << y << " " << #z << " = " << z<< "\n")
#define bitout(x,y) {\
	cerr << #x << " : ";\
	for (int justforbits = y; justforbits >=0; justforbits--)cout << (((1 << justforbits) & x)>=1);\
	cout << "\n";\
}
#define rangeout(j,rangestart,rangeend) {\
	cerr << "outputting " << #j<< ":\n";\
	for (int forrang = rangestart; forrang <= rangeend; forrang++)cerr << j[forrang] << " ";\
	cerr<<"\n";\
}
#define c1 {cerr << "Checkpoint 1! \n\n";cerr.flush();}
#define c2 {cerr << "Checkpoint 2! \n\n";cerr.flush();}
#define c3 {cerr << "Checkpoint 3! \n\n";cerr.flush();}
#define c4 {cerr << "Checkpoint 4! \n\n";cerr.flush();}
#define vi vector<int>
#define vpii vector<pii>
#define fr(i,x,y) for(int i=x;i<=y;i++)

//you can only go to some point before u js become invincible and take everything

vector<int> max_coupons(int A, vector<int> P, vector<int> T) 
{
  #define int long long 
  
  int a=A,n=P.size();
  
  vector<pii>f1,f2;
  for(int i=0;i<n;i++)
  {
	  if(T[i]==1)f1.pb(mp(P[i],i));
	  if(T[i]==2)f2.pb(mp(P[i],i));
  }
  
  sort(f1.begin(),f1.end());
  sort(f2.begin(),f2.end());
  
  vector<int>preffy;
  int curr=0;
  for(int i=0;i<f1.size();i++)
  {
	  curr+=f1[i].ff;
	  preffy.pb(curr);
  }
  
  int ans=(upper_bound(preffy.begin(),preffy.end(),a)-preffy.begin());
  int cm=-1;
  
  bool allok=false;
  for(int i=0;i<f2.size();i++)
  {
	  if(a<f2[i].ff)break;
	  a-=f2[i].ff;a*=2;
	  if(a>=1e18){allok=true;break;}
	  
	  int t1=(upper_bound(preffy.begin(),preffy.end(),a)-preffy.begin());
	  if(t1+i+1>ans){ans=t1+i+1;cm=i;}
  }
  
  vector<int>tbp;
  if(allok)
  {
	  for(pii x:f2)tbp.pb(x.ss);
	  for(pii x:f1)tbp.pb(x.ss);
}
  else
  {
	  for(int i=0;i<=cm;i++){tbp.pb(f2[i].ss);}
	  for(int i=0;i<ans-cm-1;i++){tbp.pb(f1[i].ss);}
  }
  
  return tbp;
  
  #undef int
}

Compilation message (stderr)

/usr/bin/ld: /tmp/cco2c2bN.o: in function `main':
grader.cpp:(.text.startup+0x22a): undefined reference to `max_coupons(int, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status