結果

問題 No.17 2つの地点に泊まりたい
ユーザー plasma_eplasma_e
提出日時 2019-01-17 21:23:44
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,190 bytes
コンパイル時間 610 ms
コンパイル使用メモリ 83,680 KB
最終ジャッジ日時 2025-01-06 20:29:30
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:12:26: error: ‘int64_t’ is not a member of ‘std’; did you mean ‘int64_t’?
   12 |         std::vector<std::int64_t> cost(N);
      |                          ^~~~~~~
In file included from /usr/include/x86_64-linux-gnu/sys/types.h:155,
                 from /usr/include/stdlib.h:514,
                 from /usr/include/c++/13/cstdlib:79,
                 from /usr/include/c++/13/ext/string_conversions.h:43,
                 from /usr/include/c++/13/bits/basic_string.h:4109,
                 from /usr/include/c++/13/string:54,
                 from /usr/include/c++/13/bits/locale_classes.h:40,
                 from /usr/include/c++/13/bits/ios_base.h:41,
                 from /usr/include/c++/13/ios:44,
                 from /usr/include/c++/13/ostream:40,
                 from /usr/include/c++/13/iostream:41,
                 from main.cpp:1:
/usr/include/x86_64-linux-gnu/bits/stdint-intn.h:27:19: note: ‘int64_t’ declared here
   27 | typedef __int64_t int64_t;
      |                   ^~~~~~~
main.cpp:12:33: error: template argument 1 is invalid
   12 |         std::vector<std::int64_t> cost(N);
      |                                 ^
main.cpp:12:33: error: template argument 2 is invalid
main.cpp:13:24: error: ‘begin’ was not declared in this scope; did you mean ‘std::begin’?
   13 |         for (auto& c : cost)
      |                        ^~~~
      |                        std::begin
In file included from /usr/include/c++/13/string:53:
/usr/include/c++/13/bits/range_access.h:114:37: note: ‘std::begin’ declared here
  114 |   template<typename _Tp> const _Tp* begin(const valarray<_Tp>&) noexcept;
      |                                     ^~~~~
main.cpp:13:24: error: ‘end’ was not declared in this scope; did you mean ‘std::end’?
   13 |         for (auto& c : cost)
      |                        ^~~~
      |                        std::end
/usr/include/c++/13/bits/range_acces

ソースコード

diff #

#include<iostream>
#include<vector>
#include<algorithm>
#include<functional>
#include<set>
#include<map>

int main()
{
	int N;
	std::cin >> N;
	std::vector<std::int64_t> cost(N);
	for (auto& c : cost)
	{
		std::cin >> c;
	}
	std::vector<std::map<int, std::int64_t>> edge(N);
	int M;
	std::cin >> M;
	for (int i = 0; i < M; ++i)
	{
		int A, B;
		std::int64_t C;
		std::cin >> A >> B >> C;
		edge[A][B] = C;
		edge[B][A] = C;
	}
	std::int64_t ecost[50][50];
	for (int i = 0; i < N; ++i)
	{
		for (int k = 0; k < N; ++k)
		{
			ecost[i][k] = std::numeric_limits<int>::max();
			if (edge[i].count(k))
			{
				ecost[i][k] = edge[i][k];
			}
		}
	}
	for (int i = 0; i < N; ++i)
	{
		for (int j = 0; j < N; ++j)
		{
			for (int k = 0; k < N; ++k)
			{
				ecost[j][k] = std::min(ecost[j][k], ecost[j][i] + ecost[i][k]);
			}
		}
	}
	std::int64_t min = std::numeric_limits<int>::max();
	for (int i = 1; i < N - 1; ++i)
	{
		for (int k = 1; k < N - 1; ++k)
		{
			if (i == k)
			{
				continue;
			}
			min = std::min(min,
				cost[i] + cost[k] + ecost[0][i] + ecost[i][k] + ecost[k][N - 1]);
		}
	}

	std::cout << min << std::endl;
}
0