factories.cpp:146:2: warning: "/*" within comment [-Wcomment]
}/**/
factories.cpp: In function 'void sizedfs(int, int)':
factories.cpp:3:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define fori(a,b) for(int i=a;i<b;++i)
~^~~~~~~~
#define forj(a,b) for(int j=a;j<b;++j)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define fork(a,b) for(int k=a;k<b;++k)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~
using namespace std;
~~~~~~~~~~~~~~~~~~~~~
const int N=500000;
~~~~~~~~~~~~~~~~~~~~
~
int lvl[N],par[N],sz[N],V,x,y,z,tot,l,cnt;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
long long ans[N],cd[N][19],xx;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vector<int> gr[N],dist[N];
~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool blc[N];
~~~~~~~~~~~~~
queue<int> sub;
~~~~~~~~~~~~~~~~
~
void sizedfs(int v,int p)
~~~~~~~~~~~~~~~~~~~~~~~~~~
{
~~
sz[v]=1;
~~~~~~~~~
fori(0,gr[v].size())
~~~~~~~~~~~~~~~~~~~
factories.cpp:19:5: note: in expansion of macro 'fori'
fori(0,gr[v].size())
^~~~
factories.cpp: In function 'int getCenter(int, int)':
factories.cpp:3:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define fori(a,b) for(int i=a;i<b;++i)
~^~~~~~~~
#define forj(a,b) for(int j=a;j<b;++j)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define fork(a,b) for(int k=a;k<b;++k)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~
using namespace std;
~~~~~~~~~~~~~~~~~~~~~
const int N=500000;
~~~~~~~~~~~~~~~~~~~~
~
int lvl[N],par[N],sz[N],V,x,y,z,tot,l,cnt;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
long long ans[N],cd[N][19],xx;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vector<int> gr[N],dist[N];
~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool blc[N];
~~~~~~~~~~~~~
queue<int> sub;
~~~~~~~~~~~~~~~~
~
void sizedfs(int v,int p)
~~~~~~~~~~~~~~~~~~~~~~~~~~
{
~~
sz[v]=1;
~~~~~~~~~
fori(0,gr[v].size())
~~~~~~~~~~~~~~~~~~~~~
{
~~
if(!blc[gr[v][i]]&&gr[v][i]!=p)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
~~
sizedfs(gr[v][i],v);
~~~~~~~~~~~~~~~~~~~~~
sz[v]+=sz[gr[v][i]];
~~~~~~~~~~~~~~~~~~~~~
}
~~
}
~~
}
~~
~
int getCenter(int v,int p)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
~~
fori(0,gr[v].size())
~~~~~~~~~~~~~~~~~~~
factories.cpp:31:5: note: in expansion of macro 'fori'
fori(0,gr[v].size())
^~~~
factories.cpp: In function 'void dfs(int, int)':
factories.cpp:3:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define fori(a,b) for(int i=a;i<b;++i)
~^~~~~~~~
#define forj(a,b) for(int j=a;j<b;++j)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define fork(a,b) for(int k=a;k<b;++k)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~
using namespace std;
~~~~~~~~~~~~~~~~~~~~~
const int N=500000;
~~~~~~~~~~~~~~~~~~~~
~
int lvl[N],par[N],sz[N],V,x,y,z,tot,l,cnt;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
long long ans[N],cd[N][19],xx;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vector<int> gr[N],dist[N];
~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool blc[N];
~~~~~~~~~~~~~
queue<int> sub;
~~~~~~~~~~~~~~~~
~
void sizedfs(int v,int p)
~~~~~~~~~~~~~~~~~~~~~~~~~~
{
~~
sz[v]=1;
~~~~~~~~~
fori(0,gr[v].size())
~~~~~~~~~~~~~~~~~~~~~
{
~~
if(!blc[gr[v][i]]&&gr[v][i]!=p)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
~~
sizedfs(gr[v][i],v);
~~~~~~~~~~~~~~~~~~~~~
sz[v]+=sz[gr[v][i]];
~~~~~~~~~~~~~~~~~~~~~
}
~~
}
~~
}
~~
~
int getCenter(int v,int p)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
~~
fori(0,gr[v].size())
~~~~~~~~~~~~~~~~~~~~~
if(sz[gr[v][i]]*2>tot&&!blc[gr[v][i]]&&gr[v][i]!=p)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
return getCenter(gr[v][i],v);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blc[v]=true;
~~~~~~~~~~~~~
return v;
~~~~~~~~~~
}
~~
~
void dfs(int v,int p)
~~~~~~~~~~~~~~~~~~~~~~
{
~~
fori(0,gr[v].size())
~~~~~~~~~~~~~~~~~~~
factories.cpp:40:5: note: in expansion of macro 'fori'
fori(0,gr[v].size())
^~~~
factories.cpp: In function 'void Init(int, int*, int*, int*)':
factories.cpp:3:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define fori(a,b) for(int i=a;i<b;++i)
~^~~~~~~~
#define forj(a,b) for(int j=a;j<b;++j)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define fork(a,b) for(int k=a;k<b;++k)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~
using namespace std;
~~~~~~~~~~~~~~~~~~~~~
const int N=500000;
~~~~~~~~~~~~~~~~~~~~
~
int lvl[N],par[N],sz[N],V,x,y,z,tot,l,cnt;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
long long ans[N],cd[N][19],xx;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vector<int> gr[N],dist[N];
~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool blc[N];
~~~~~~~~~~~~~
queue<int> sub;
~~~~~~~~~~~~~~~~
~
void sizedfs(int v,int p)
~~~~~~~~~~~~~~~~~~~~~~~~~~
{
~~
sz[v]=1;
~~~~~~~~~
fori(0,gr[v].size())
~~~~~~~~~~~~~~~~~~~~~
{
~~
if(!blc[gr[v][i]]&&gr[v][i]!=p)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
~~
sizedfs(gr[v][i],v);
~~~~~~~~~~~~~~~~~~~~~
sz[v]+=sz[gr[v][i]];
~~~~~~~~~~~~~~~~~~~~~
}
~~
}
~~
}
~~
~
int getCenter(int v,int p)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
~~
fori(0,gr[v].size())
~~~~~~~~~~~~~~~~~~~~~
if(sz[gr[v][i]]*2>tot&&!blc[gr[v][i]]&&gr[v][i]!=p)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
return getCenter(gr[v][i],v);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blc[v]=true;
~~~~~~~~~~~~~
return v;
~~~~~~~~~~
}
~~
~
void dfs(int v,int p)
~~~~~~~~~~~~~~~~~~~~~~
{
~~
fori(0,gr[v].size())
~~~~~~~~~~~~~~~~~~~~~
if(lvl[gr[v][i]]>l&&gr[v][i]!=p)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
~~
cd[gr[v][i]][l]=cd[v][l]+dist[v][i];
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dfs(gr[v][i],v);
~~~~~~~~~~~~~~~~~
}
~~
}
~~
~
void Init(int n,int a[],int b[],int d[])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
~~
V=n;
~~~~~
fori(0,V)
~~~~~~~~~~
forj(0,19)
~~~~~~~~~~~
cd[i][j]=LLONG_MAX;
~~~~~~~~~~~~~~~~~~~~
fori(0,V-1)
~~~~~~~~~~~~
{
~~
gr[a[i]].push_back(b[i]); gr[b[i]].push_back(a[i]);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dist[a[i]].push_back(d[i]); dist[b[i]].push_back(d[i]);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
~~
sub.push(0); par[0]=-1;
~~~~~~~~~~~~~~~~~~~~~~~~
while(!sub.empty())
~~~~~~~~~~~~~~~~~~~~
{
~~
x=sub.front(); sub.pop();
~~~~~~~~~~~~~~~~~~~~~~~~~~
sizedfs(x,-1); tot=sz[x];
~~~~~~~~~~~~~~~~~~~~~~~~~~
y=getCenter(x,-1);
~~~~~~~~~~~~~~~~~~~
par[y]=par[x];
~~~~~~~~~~~~~~~
if(par[y]!=-1)
~~~~~~~~~~~~~~~
lvl[y]=lvl[par[y]]+1;
~~~~~~~~~~~~~~~~~~~~~~
fori(0,gr[y].size())
~~~~~~~~~~~~~~~~~~~
factories.cpp:68:9: note: in expansion of macro 'fori'
fori(0,gr[y].size())
^~~~
factories.cpp:82:20: warning: division by zero [-Wdiv-by-zero]
cout<<1/0;
~^~