This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "tickets.h"
#include <bits/stdc++.h>
#define mp make_pair
#define f first
#define s second
#define sz(x) (int)(x).size()
#define rsz resize
#define ins insert
#define ft front()
#define bk back()
#define pf push_front
#define pb push_back
using namespace std;
typedef long long ll;
typedef pair<int,int> pi;
typedef pair<ll,ll> pl;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<pi> vpi;
typedef vector<pl> vpl;
vi v,res;
vpi take;
ll ressum;
void rec(int k)
{
if (k==sz(take))
{
vi gg=v;
sort(gg.begin(),gg.end());
int mid=sz(take)/2;
ll jem=0;
for (int i=0;i<sz(take);i++)jem+=abs(gg[mid]-gg[i]);
if (ressum<jem)
{
ressum=jem;
res=v;
}
return;
}
v.pb(take[k].f);
rec(k+1);
v.pop_back();
v.pb(take[k].s);
rec(k+1);
v.pop_back();
}
ll find_maximum(int k,vector<vi> x)
{
int n=sz(x);
int m=sz(x[0]);
vector<vi> xx;
for(int i=0;i<n;i++)
{
vi row;
int mn=INT_MAX,mx=0;
for(int j=0;j<m;j++)
{
row.pb(x[i][j]);
mn=min(x[i][j],mn);
mx=max(mx,x[i][j]);
}
xx.pb(row);
take.pb({mn,mx});
}
rec(0);
for (int i=0;i<n;i++)
{
bool b=0;
for (int j=0;j<m;j++)
{
if (!b && res[i]==xx[i][j])
{
xx[i][j]=0;
b=1;
}
else xx[i][j]=-1;
}
}
allocate_tickets(xx);
return ressum;
}
# | 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... |