-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
После долгих мучений, он получился) вопрос, как пользоваться memset, чтобы заполнить массив значением INF? #define INF 2000000
Код:
include
include
using namespace std;
define MAX 100
define INF 2000000
void dijkstra(int v);
int arr[MAX][MAX];
bool used[MAX];
int dist[MAX];
int n_e;
int n_v;
int start_v = 1;
int main()
{
cin >> n_v >> n_e;
memset(arr, 0, sizeof(arr));
memset(used, 0, sizeof(used));
for (int i = 0; i < MAX; i++)
dist[i] = INF;
for (int i = 0; i < n_e; i++)
{
int a, b, w;
cin >> a >> b >> w;
arr[a][b] = arr[b][a] = w;
}
dist[start_v] = 0;
dijkstra(start_v);
cout << endl;
for (int i = 1; i < n_v; i++)
cout << start_v << " - " << i << ": " << dist[i] << endl;
getchar();
getchar();
return 0;
}
void dijkstra(int v)
{
used[v] = true;
int m = INF;
int m_v = -1;
for (int i = 1; i <= n_v; i++)
{
if (!used[i])
{
if (arr[v][i] != 0)
dist[i] = min(dist[v] + arr[v][i], dist[i]);
if (dist[i] < m)
{
m = dist[i];
m_v = i;
}
}
}
if (m_v > 0)
dijkstra(m_v);
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels