//#line 29 "../PROTOTYPES/ladders.ch" void plant_new_edge(Vertex * v) //#line 294 "../ladders.w" { Vertex *u = gg->vertices + gg->n; gb_new_edge(u, v, 1L); if (alph) u->arcs->len = (u->arcs - 1)->len = alph_dist(u->name, v->name); else if (freq) { u->arcs->len = freq_cost(v); (u->arcs - 1)->len = 20; } }
int main() { mt19937 rng; uniform_int_distribution<int> length_dist(0, 100); uniform_int_distribution<int> alph_dist(1, 6); for(int t = 0; t < 400000; ++t) { int n = length_dist(rng); int k = alph_dist(rng); uniform_int_distribution<int> char_dist('A', 'A' + k - 1); vector<int> S; for(int i = 0; i < n; ++i) { S.push_back(char_dist(rng)); } vector<int> a = zAlgorithm(S); vector<int> b = zAlgorithm(S); if(a.size() != b.size() || !equal(a.begin(), a.end(), b.begin())) fail(); } return 0; }
//#line 43 "../PROTOTYPES/ladders.ch" long alph_heur(Vertex * v) //#line 341 "../ladders.w" { return alph_dist(v->name, goal); }