18 lines
304 B
C++
18 lines
304 B
C++
#include "nr.h"
|
|
|
|
void NR::eclazz(Vec_O_INT &nf, bool equiv(const int, const int))
|
|
{
|
|
int kk,jj;
|
|
|
|
int n=nf.size();
|
|
nf[0]=0;
|
|
for (jj=1;jj<n;jj++) {
|
|
nf[jj]=jj;
|
|
for (kk=0;kk<jj;kk++) {
|
|
nf[kk]=nf[nf[kk]];
|
|
if (equiv(jj+1,kk+1)) nf[nf[nf[kk]]]=jj;
|
|
}
|
|
}
|
|
for (jj=0;jj<n;jj++) nf[jj]=nf[nf[jj]];
|
|
}
|