제출 #428870

#제출 시각아이디문제언어결과실행 시간메모리
428870Amylopectin친구 (IOI14_friend)C++14
8 / 100
7 ms7500 KiB
#include <iostream> #include <stdio.h> #include <vector> #include "friend.h" //#include "grader.cpp" using namespace std; const long long mxn = 1e5 + 10; vector <int> pa[mxn] = {},gli[mxn] = {},chi[mxn] = {}; long long u[mxn] = {},nn,econ[mxn] = {},ma = 0,chv[mxn] = {},sev[mxn] = {},gr[mxn] = {},ra[mxn] = {},ru,cw[mxn] = {},rep[mxn] = {}; long long fima(long long l,long long r) { if(l > r) return l; return r; } //long long figr(long long l) //{ // long long cn = l,f; // while(gr[cn] != cn) // { // cn = gr[cn]; // } // while(gr[l] != l) // { // f = gr[l]; // gr[l] = cn; // l = f; // } // return cn; //} //long long mer(long long l,long long r) //{ // long long pl,pr; // pl = figr(l); // pr = figr(r); //} long long re(long long la,long long su) { long long 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; } long long re2(long long cn,long long be); long long rech(long long cn); long long re3(long long cn) { int i,fn; for(i=0; i<pa[cn].size(); i++) { fn = pa[cn][i]; rech(fn); sev[cn] += chv[fn]; chv[cn] += sev[fn]; } return 0; } long long rech(long long cn) { int i,fn; if(chi[cn].size() == 0) { sev[cn] = econ[rep[cn]]; re3(cn); return 0; } re3(cn); for(i=0; i<chi[cn].size(); i++) { fn = chi[cn][i]; rech(fn); sev[cn] += sev[fn]; chv[cn] += chv[fn]; } if(sev[cn] < chv[cn]) { sev[cn] = chv[cn]; } return 0; } long long re2(long long cn,long long be) { long long i,fn; if(cn < nn) 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[]) { long long i,j,ans,cn,fn; nn = n; ru = n; for(i=0; i<n; i++) { econ[i] = conf[i]; gr[i] = i; cw[i] = i; rep[i] = i; // ma = fima(ma,conf[i]); } for(i=1; i<n; i++) { // ho[i] = gr[ho[i]]; if(prot[i] == 0) { pa[cw[ho[i]]].push_back(i); // pa[i].push_back(cw[ho[i]]); } else if(prot[i] == 1) { // cn = ho[i]; gr[i] = gr[ho[i]]; chi[cw[ho[i]]].push_back(i); chi[cw[ho[i]]].push_back(ru); rep[ru] = ho[i]; cw[ho[i]] = ru; ru ++; // 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); } } rech(0); ma = sev[0]; // re(0,0); return ma; } //int main() //{ // cout << "Hello world!" << endl; // return 0; //}

컴파일 시 표준 에러 (stderr) 메시지

friend.cpp: In function 'long long int re(long long int, long long int)':
friend.cpp:49:23: warning: comparison of integer expressions of different signedness: 'long long 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:15: warning: unused variable 'fn' [-Wunused-variable]
   39 |     long long fn,i,j,cu[mxn] = {};
      |               ^~
friend.cpp: In function 'long long int re3(long long int)':
friend.cpp:69:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   69 |     for(i=0; i<pa[cn].size(); i++)
      |              ~^~~~~~~~~~~~~~
friend.cpp: In function 'long long int rech(long long int)':
friend.cpp:88:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   88 |     for(i=0; i<chi[cn].size(); i++)
      |              ~^~~~~~~~~~~~~~~
friend.cpp: In function 'long long int re2(long long int, long long int)':
friend.cpp:106:15: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  106 |     for(i=0; i<pa[cn].size(); i++)
      |              ~^~~~~~~~~~~~~~
friend.cpp: In function 'int findSample(int, int*, int*, int*)':
friend.cpp:125:14: warning: unused variable 'j' [-Wunused-variable]
  125 |  long long i,j,ans,cn,fn;
      |              ^
friend.cpp:125:16: warning: unused variable 'ans' [-Wunused-variable]
  125 |  long long i,j,ans,cn,fn;
      |                ^~~
friend.cpp:125:23: warning: unused variable 'fn' [-Wunused-variable]
  125 |  long long 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...