코딩을 너무 안 하는것 같아서 가끔 Codeforces를 풀고있는데, 오랜만에 좋은 문제를 찾았다.


문제를 설명하면 간단하게 N개의 정점과 M개의 가중치를 갖는 무향 간선으로 이루어진 그래프가 주어졌을 때, 모든 정점이 연결돼있도록 N-1개의 간선만 남기되(즉, 스패닝 트리를 만들면 된다), 간선의 가중치의 합이 최소가 되도록 하는 방법을 출력하는 것이다. 여기서 각 그래프에는 Wi라는 가중치와 Ci라는 속성이 있는데, 가중치를 원하는 만큼 줄일 수 있지만(0이나 음수로도 줄일 수 있다), 1씩 줄일 때마다 Ci의 비용이 소요되고, 지불할 수 있는 자금의 한계 S가 주어진다.


Link: http://codeforces.com/contest/733/problem/F


풀이 보기


신고

몇 번 못 해봤지만, 국내에서 취약점을 보고했을 때, 곧바로 진지하게 들어주고 이에 대한 (소소하지만) 보상까지 받아본 경우는 살면서 처음이다(!).

별다른 기대 없이, 취약점이 너무 쉽게 재현 가능하고 돈에 관련된 거라 그냥 넘어갈 수 없어서 제보했던 건데 ㅋㅋㅋ

덕분에 책을 돈 걱정 없이 더 구매할 수 있었다 :D


신고

In [15]:from datetime import datetime; import time

In [16]: datetime.strftime(datetime.strptime('2016-09-20 20:00:13', '%Y-%m-%d %H:%M:%S'), '%Y.%m.%d %H:%M:%S KST')
Out[16]: '2016.09.20 20:00:13 KST'

In [17]: s = datetime.strptime('2016-09-20 20:00:13', '%Y-%m-%d %H:%M:%S')

In [18]: time.mktime(s.timetuple())
Out[18]: 1474369213.0

이건 자꾸 까먹어서 ㅠㅠ

신고