Надо дойти из точки S в точку D. То есть из левой крайней точки в правую. Каждый раз проходя граф, уменьшаем его на 1. Если граф равен 0 по нему идти нельзя. Сосчитать сколько раз можно пройти по графу.
Не понимаю почему не работает. в текстбоксы вводим "стоимость" графов.
Есть более верный алгоритм решения?
C# |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
| private void button1_Click(object sender, EventArgs e)
{
int a = 0;//Сколько раз прошли
//первый путь
while (int.Parse(textBox1.Text) != 0)
{
while (int.Parse(textBox3.Text) != 0)
{
while (int.Parse(textBox4.Text) != 0)
{
while (int.Parse(textBox8.Text) != 0)
{
a++;
textBox1.Text = (int.Parse(textBox1.Text) - 1).ToString();
textBox3.Text = (int.Parse(textBox3.Text) - 1).ToString();
textBox4.Text = (int.Parse(textBox4.Text) - 1).ToString();
textBox8.Text = (int.Parse(textBox8.Text) - 1).ToString();
}
}
}
}
//Конец первого пути
//второй путь
while (int.Parse(textBox12.Text) != 0) {
while (int.Parse(textBox11.Text) != 0)
{
while (int.Parse(textBox3.Text) != 0)
{
while (int.Parse(textBox4.Text) != 0)
{
while (int.Parse(textBox8.Text) != 0)
{
a++;
textBox11.Text = (int.Parse(textBox11.Text) - 1).ToString();
textBox12.Text = (int.Parse(textBox12.Text) - 1).ToString();
textBox3.Text = (int.Parse(textBox3.Text) - 1).ToString();
textBox4.Text = (int.Parse(textBox4.Text) - 1).ToString();
textBox8.Text = (int.Parse(textBox8.Text) - 1).ToString();
}
}
}
}
}
//Конец второго пути
//Третий путь
while (int.Parse(textBox12.Text) != 0)
{
while (int.Parse(textBox2.Text) != 0)
{
while (int.Parse(textBox4.Text) != 0)
{
while (int.Parse(textBox8.Text) != 0)
{
a++;
textBox12.Text = (int.Parse(textBox12.Text) - 1).ToString();
textBox2.Text = (int.Parse(textBox2.Text) - 1).ToString();
textBox4.Text = (int.Parse(textBox4.Text) - 1).ToString();
textBox8.Text = (int.Parse(textBox8.Text) - 1).ToString();
}
}
}
}
//Конец третьего пути
//четвертый путь
while (int.Parse(textBox12.Text) != 0)
{
while (int.Parse(textBox2.Text) != 0)
{
while (int.Parse(textBox13.Text) != 0)
{
while (int.Parse(textBox5.Text) != 0)
{
while (int.Parse(textBox8.Text) != 0)
{
a++;
textBox12.Text = (int.Parse(textBox12.Text) - 1).ToString();
textBox2.Text = (int.Parse(textBox2.Text) - 1).ToString();
textBox13.Text = (int.Parse(textBox13.Text) - 1).ToString();
textBox5.Text = (int.Parse(textBox5.Text) - 1).ToString();
textBox8.Text = (int.Parse(textBox8.Text) - 1).ToString();
}
}
}
}
}
//Конец четвертогого пути
//Начало пятого пути
while (int.Parse(textBox12.Text) != 0)
{
while (int.Parse(textBox9.Text) != 0)
{
while (int.Parse(textBox5.Text) != 0)
{
while (int.Parse(textBox8.Text) != 0)
{
a++;
textBox12.Text = (int.Parse(textBox12.Text) - 1).ToString();
textBox9.Text = (int.Parse(textBox9.Text) - 1).ToString();
textBox5.Text = (int.Parse(textBox5.Text) - 1).ToString();
textBox8.Text = (int.Parse(textBox8.Text) - 1).ToString();
}
}
}
}
//Конец пятого пути
//шестой путь
while (int.Parse(textBox12.Text) != 0)
{
while (int.Parse(textBox10.Text) != 0)
{
while (int.Parse(textBox6.Text) != 0)
{
while (int.Parse(textBox8.Text) != 0)
{
a++;
textBox10.Text = (int.Parse(textBox10.Text) - 1).ToString();
textBox12.Text = (int.Parse(textBox12.Text) - 1).ToString();
textBox6.Text = (int.Parse(textBox6.Text) - 1).ToString();
textBox8.Text = (int.Parse(textBox8.Text) - 1).ToString();
}
}
}
}
//Конец шестого пути
//Начало седьмого пути
while (int.Parse(textBox12.Text) != 0)
{
while (int.Parse(textBox10.Text) != 0)
{
while (int.Parse(textBox4.Text) != 0)
{
textBox10.Text = (int.Parse(textBox10.Text) - 1).ToString();
textBox12.Text = (int.Parse(textBox12.Text) - 1).ToString();
textBox4.Text = (int.Parse(textBox4.Text) - 1).ToString();
a++;
}
}
}
textBox14.Text=(a).ToString(); |
|
Добавлено через 12 часов 10 минут
Сделала вот так
C# |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
| private void button1_Click(object sender, EventArgs e)
{
int XXX = int.Parse(textBox14.Text);//чисто не забыть
int a = int.Parse(textBox1.Text),
b = int.Parse(textBox3.Text),
c = int.Parse(textBox4.Text),
d = int.Parse(textBox8.Text),
w = int.Parse(textBox12.Text),
g = int.Parse(textBox11.Text),
f = int.Parse(textBox2.Text),
l = int.Parse(textBox9.Text),
m = int.Parse(textBox10.Text),
k = int.Parse(textBox5.Text),
u = int.Parse(textBox13.Text),
v = int.Parse(textBox10.Text),
z = int.Parse(textBox7.Text);
while (a>0 && b>0 && c>0 && d>0)
{
XXX++;
a--;
b--;
c--;
d--;
}
while (w>0 && b>0 && c > 0 && d > 0)
{
XXX++;
w--;
b--;
c--;
d--;
}
while (w > 0 && f > 0 && c > 0 && d > 0)
{
XXX++;
w--;
f--;
c--;
d--;
}
while (w > 0 && f > 0 && u > 0 && k > 0 && d > 0)
{
XXX++;
f--;
w--;
u--;
k--;
d--;
}
while (w > 0 && l > 0 && k > 0 && d > 0)
{
XXX++;
w--;
l--;
k--;
d--;
}
while (w > 0 && m > 0 && v > 0 && d > 0)
{
XXX++;
w--;
m--;
v--;
d--;
}
while (w > 0 && m > 0 && z > 0)
{
XXX++;
w--;
m--;
z--;
}
textBox14.Text=(XXX).ToString();//чисто не забыть
}
} |
|
Теперь всё работает