Submission #428726

#TimeUsernameProblemLanguageResultExecution timeMemory
428726Amylopectin친구 (IOI14_friend)C++14
35 / 100
3 ms2764 KiB
#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)

friend.cpp: In function 'int re(int, int)':
friend.cpp:49:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |             for(j=0; j<pa[i].size(); j++)
      |                      ~^~~~~~~~~~~~~
friend.cpp:39:9: warning: unused variable 'fn' [-Wunused-variable]
   39 |     int fn,i,j,cu[mxn] = {};
      |         ^~
friend.cpp: In function 'int re2(int, int)':
friend.cpp:67:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   67 |     for(i=0; i<pa[cn].size(); i++)
      |              ~^~~~~~~~~~~~~~
friend.cpp: In function 'int findSample(int, int*, int*, int*)':
friend.cpp:86:8: warning: unused variable 'j' [-Wunused-variable]
   86 |  int i,j,ans,cn,fn;
      |        ^
friend.cpp:86:10: warning: unused variable 'ans' [-Wunused-variable]
   86 |  int i,j,ans,cn,fn;
      |          ^~~
friend.cpp:86:17: warning: unused variable 'fn' [-Wunused-variable]
   86 |  int i,j,ans,cn,fn;
      |                 ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...