답안 #38103

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
38103 2018-01-01T07:03:20 Z nibnalin 페리들 (NOI13_ferries) C++14
17 / 40
403 ms 26996 KB
#include <iostream>
#include <cstdio>
#include <vector>
#include <set>
using namespace std;

const int maxn = int(1e5)+5, inf = int(1e9)+5;

int D[maxn];
multiset<int> into[maxn];
vector<int> graph[maxn];

int main(void)
{
	int n, m, a, b, c;
	scanf("%d%d", &n, &m);
	for(int i = 0;i < n;i++) D[i] = inf;
	for(int i = 0;i < m;i++)
	{
		scanf("%d%d%d", &a, &b, &c);
		a--, b--;
		graph[b].push_back(a);
		into[a].insert(c);
	}

	set<pair<int, int>> Q;
	D[n-1] = 0;
	Q.insert({D[n-1], n-1});

	while(!Q.empty())
	{
		pair<int, int> top = *Q.begin();
		Q.erase(Q.begin());
		//cout << top.first << " " << top.second << "\n";

		for(auto it: graph[top.second])
		{
			int w = *into[it].rbegin();
			into[it].erase(into[it].find(w));
			if(D[it] > D[top.second]+w)
			{
				D[it] = D[top.second]+w;
				if(D[it] != inf) Q.erase({D[it], it});
				Q.insert({D[it], it});
			}
		}
	}
	printf("%d\n", D[0]);
}

Compilation message

ferries.cpp: In function 'int main()':
ferries.cpp:16:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &n, &m);
                       ^
ferries.cpp:20:30: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d%d", &a, &b, &c);
                              ^
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 9440 KB Output is correct
2 Correct 0 ms 9572 KB Output is correct
3 Correct 19 ms 10768 KB Output is correct
4 Correct 363 ms 22504 KB Output is correct
5 Correct 403 ms 22504 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 9440 KB Output is correct
2 Correct 3 ms 9572 KB Output is correct
3 Correct 19 ms 10632 KB Output is correct
4 Correct 119 ms 15904 KB Output is correct
5 Correct 216 ms 17944 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 19 ms 11156 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 313 ms 26996 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -