全WA求大佬求助
查看原帖
全WA求大佬求助
487383
imnoob楼主2023/12/2 09:08

求助

#include<bits/stdc++.h>

int n, m;
int a[105][105], f[105][105];

int read()
{
	char c = getchar();
	int x = 0, flag = 1;
	if(c == '-')
	{
		flag = -1;
		c = getchar();
	}
	while('0' <= c && c <= '9')
	{
		x = x * 10 + (c - '0');
		c = getchar();
	}
	return x * flag;
}

void write(int r)
{
    if(r>9)
    {
    	write(r/10);
	}
    putchar((r % 10) + '0');
}


int main(){
	memset(a, 0x3f, sizeof(a));
	n = read();m = read();
	int r1, r2, r3;
	for(int i = 1; i <= m; i ++)
	{
		r1 = read(); r2 = read(); r3 = read();
		a[r1][r2] = std::min(a[r1][r2], r3);
		a[r2][r1] = std::min(a[r2][r1], r3);
	}
	for(int j = 1; j <= n; j ++)
	{
		for(int k = 1 ; k <= n; k ++)
		{
			f[j][k] = a[j][k];
			if(j == k)
			{
				f[j][k] = 0;
			}			
		}		
	}
	for(int i = 1; i <= n; i ++)
	{
		for(int j = 1; j <= n; j ++)
		{
			for(int k = 1 ; k <= n; k ++)
			{
				f[j][k] = std::min(f[j][k], f[j][i] + f[i][k]);
			}
		}
	}
	for(int i = 1; i <= n; i ++)
	{
		for(int j = 1; j <= n; j ++)
		{
			write(f[i][j]);
			putchar(' ');
		}
		putchar('\n');
	}
	return 0;
}
2023/12/2 09:08
加载中...