# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
428726 | Amylopectin | Friend (IOI14_friend) | C++14 | 3 ms | 2764 KiB |
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 <iostream>
#include <stdio.h>
#include <vector>
#include "friend.h"
//#include "grader.cpp"
using namespace std;
const int mxn = 1e5 + 10;
vector <int> pa[mxn] = {};
int u[mxn] = {},nn,econ[mxn] = {},ma = 0,chv[mxn] = {},sev[mxn] = {},gr[mxn] = {},ra[mxn] = {};
int fima(int l,int r)
{
if(l > r)
return l;
return r;
}
//int figr(int l)
//{
// int cn = l,f;
// while(gr[cn] != cn)
// {
// cn = gr[cn];
// }
// while(gr[l] != l)
// {
// f = gr[l];
// gr[l] = cn;
// l = f;
// }
// return cn;
//}
//int mer(int l,int r)
//{
// int pl,pr;
// pl = figr(l);
// pr = figr(r);
//}
int re(int la,int su)
{
int fn,i,j,cu[mxn] = {};
ma = fima(su,ma);
for(i=0; i<nn; i++)
{
cu[i] = u[i];
}
for(i=0; i<nn; i++)
{
if(cu[i] == 0)
{
for(j=0; j<pa[i].size(); j++)
{
u[pa[i][j]] = 1;
}
u[i] = 1;
re(la+1,su + econ[i]);
for(j=0; j<nn; j++)
{
u[j] = cu[j];
}
}
}
return 0;
}
int re2(int cn,int be)
{
int i,fn;
sev[cn] = econ[cn];
for(i=0; i<pa[cn].size(); i++)
{
fn = pa[cn][i];
if(fn == be)
{
continue;
}
re2(fn,cn);
sev[cn] += chv[fn];
chv[cn] += sev[fn];
}
if(chv[cn] > sev[cn])
{
sev[cn] = chv[cn];
}
return 0;
}
int findSample(int n,int conf[],int ho[],int prot[])
{
int i,j,ans,cn,fn;
nn = n;
for(i=0; i<n; i++)
{
econ[i] = conf[i];
gr[i] = i;
// ma = fima(ma,conf[i]);
}
for(i=1; i<n; i++)
{
ho[i] = gr[ho[i]];
if(prot[i] == 0)
{
pa[ho[i]].push_back(i);
pa[i].push_back(ho[i]);
}
else if(prot[i] == 1)
{
cn = ho[i];
econ[cn] += econ[i];
gr[i] = ho[i];
// for(j=0; j<pa[cn].size(); j++)
// {
// fn = pa[cn][j];
// pa[i].push_back(fn);
// pa[fn].push_back(i);
// }
}
else
{
cn = ho[i];
econ[cn] = fima(econ[cn],econ[i]);
gr[i] = ho[i];
// for(j=0; j<pa[cn].size(); j++)
// {
// fn = pa[cn][j];
// pa[i].push_back(fn);
// pa[fn].push_back(i);
// }
// pa[cn].push_back(i);
// pa[i].push_back(cn);
}
}
re2(0,-1);
ma = sev[0];
// re(0,0);
return ma;
}
//int main()
//{
// cout << "Hello world!" << endl;
// return 0;
//}
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... |