using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace Кол_во_циклов_в_графе_1_
{
class Program
{
public static int vertex_count = 16;
public static int edge_count = 16;
public static int[,] Graph;
public static int[] cnt;
static void Main(string[] args)
{
Graph = new int[vertex_count, edge_count];
Graph[0, 1] = 1;
Graph[0, 2] = 1;
Graph[0, 3] = 1;
Graph[3, 4] = 1;
Graph[3, 5] = 1;
Graph[4, 6] = 1;
Graph[4, 8] = 1;
Graph[5, 14] = 1;
Graph[5, 15] = 1;
Graph[5, 6] = 1;
Graph[6, 10] = 1;
Graph[8, 9] = 1;
Graph[10, 12] = 1;
Graph[12, 11] = 1;
Graph[12, 13] = 1;
Graph[13, 14] = 1;
for (int i = 0; i < vertex_count; i++) {
for (int j = 0; j < edge_count; j++) {
if (Graph[i, j] == 1)
Graph[j, i] = 1;
Console.Write(Graph[i, j] + " ");
}
Console.WriteLine();
}
Console.WriteLine();
cnt = new int[vertex_count];
for (int i = 0; i < vertex_count; i++) {
bool[] Use = new bool[vertex_count];
for(int j = 0; j < edge_count; j++) {
Use[j] = false;
}
Use[i] = true;
DFS(Use, i, i, 0);
}
int y = 0;
string s;
for (int i = 2; i < vertex_count; i++) {
y = cnt[i]/(i*2);
s = "cnt[" + Convert.ToString(i) + "]: " + Convert.ToString(y);
Console.WriteLine(s);
}
Console.ReadKey();
}
public static void DFS (bool []use, int k, int anc, int wave)
{
if (Graph[k, anc] != 0) cnt[wave+1]++;
use[k] = true;
for(int i = 0; i < vertex_count; i++)
{
if (!use[i] && Graph[k,i] != 0)
{
use[i] = true;
DFS(use, i, anc, wave + 1);
use[i] = false;
}
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0Owp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBTeXN0ZW0uSU87CgpuYW1lc3BhY2Ug0JrQvtC7X9Cy0L5f0YbQuNC60LvQvtCyX9CyX9Cz0YDQsNGE0LVfMV8KewogICAgY2xhc3MgUHJvZ3JhbQogICAgewogICAgICAgIHB1YmxpYyBzdGF0aWMgaW50IHZlcnRleF9jb3VudCA9IDE2OwogICAgICAgIHB1YmxpYyBzdGF0aWMgaW50IGVkZ2VfY291bnQgPSAxNjsgCiAgICAgICAgcHVibGljIHN0YXRpYyBpbnRbLF0gR3JhcGg7CiAgICAgICAgcHVibGljIHN0YXRpYyBpbnRbXSBjbnQ7CgogICAgICAgIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKICAgICAgICB7CiAgICAgICAgICAgIEdyYXBoID0gbmV3IGludFt2ZXJ0ZXhfY291bnQsIGVkZ2VfY291bnRdOwoKICAgICAgICAgICAgR3JhcGhbMCwgMV0gPSAxOwogICAgICAgICAgICBHcmFwaFswLCAyXSA9IDE7CiAgICAgICAgICAgIEdyYXBoWzAsIDNdID0gMTsKICAgICAgICAgICAgR3JhcGhbMywgNF0gPSAxOwogICAgICAgICAgICBHcmFwaFszLCA1XSA9IDE7CiAgICAgICAgICAgIEdyYXBoWzQsIDZdID0gMTsKICAgICAgICAgICAgR3JhcGhbNCwgOF0gPSAxOwogICAgICAgICAgICBHcmFwaFs1LCAxNF0gPSAxOwogICAgICAgICAgICBHcmFwaFs1LCAxNV0gPSAxOwogICAgICAgICAgICBHcmFwaFs1LCA2XSA9IDE7CiAgICAgICAgICAgIEdyYXBoWzYsIDEwXSA9IDE7CiAgICAgICAgICAgIEdyYXBoWzgsIDldID0gMTsKICAgICAgICAgICAgR3JhcGhbMTAsIDEyXSA9IDE7CiAgICAgICAgICAgIEdyYXBoWzEyLCAxMV0gPSAxOwogICAgICAgICAgICBHcmFwaFsxMiwgMTNdID0gMTsKICAgICAgICAgICAgR3JhcGhbMTMsIDE0XSA9IDE7CgogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZlcnRleF9jb3VudDsgaSsrKSB7CiAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGVkZ2VfY291bnQ7IGorKykgewogICAgICAgICAgICAgICAgICAgIGlmIChHcmFwaFtpLCBqXSA9PSAxKQogICAgICAgICAgICAgICAgICAgICAgICBHcmFwaFtqLCBpXSA9IDE7CgogICAgICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGUoR3JhcGhbaSwgal0gKyAiICIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgpOwoKICAgICAgICAgICAgY250ID0gbmV3IGludFt2ZXJ0ZXhfY291bnRdOwoKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2ZXJ0ZXhfY291bnQ7IGkrKykgewogICAgICAgICAgICAgICAgYm9vbFtdIFVzZSA9IG5ldyBib29sW3ZlcnRleF9jb3VudF07CiAgICAgICAgICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgZWRnZV9jb3VudDsgaisrKSB7CiAgICAgICAgICAgICAgICAgICAgVXNlW2pdID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBVc2VbaV0gPSB0cnVlOwogICAgICAgICAgICAgICAgREZTKFVzZSwgaSwgaSwgMCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGludCB5ID0gMDsKICAgICAgICAgICAgc3RyaW5nIHM7IAogICAgICAgICAgICBmb3IgKGludCBpID0gMjsgaSA8IHZlcnRleF9jb3VudDsgaSsrKSB7CiAgICAgICAgICAgICAgICB5ID0gY250W2ldLyhpKjIpOyAKICAgICAgICAgICAgICAgIHMgPSAiY250WyIgKyBDb252ZXJ0LlRvU3RyaW5nKGkpICsgIl06ICIgKyBDb252ZXJ0LlRvU3RyaW5nKHkpOwogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUocyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgQ29uc29sZS5SZWFkS2V5KCk7CiAgICAgICAgfQogICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBERlMgKGJvb2wgW111c2UsIGludCBrLCBpbnQgYW5jLCBpbnQgd2F2ZSkgCiAgICAgICAgewogICAgICAgICAgIGlmIChHcmFwaFtrLCBhbmNdICE9IDApIGNudFt3YXZlKzFdKys7CiAgICAgICAgICAgdXNlW2tdID0gdHJ1ZTsKICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgdmVydGV4X2NvdW50OyBpKyspCiAgICAgICAgICAgewogICAgICAgICAgICAgICBpZiAoIXVzZVtpXSAmJiBHcmFwaFtrLGldICE9IDApCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIHVzZVtpXSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICBERlModXNlLCBpLCBhbmMsIHdhdmUgKyAxKTsKICAgICAgICAgICAgICAgICAgIHVzZVtpXSA9IGZhbHNlOwogICAgICAgICAgICAgICB9ICAgICAgICAgICAgIAogICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0K