[伯俊/BOJ]6068管理時間[Gold 5]
1655 ワード
code
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int N, i, time;
cin >> N;
vector<pair<int, int>> arr(N);
for (i = 0; i < N; i++)
cin >> arr[i].second >> arr[i].first;
sort(arr.begin(), arr.end(),greater<>());
time = arr[0].first - arr[0].second;
for (i = 1; i < N; i++)
{
if (time <= arr[i].first)
time -= arr[i].second;
else
{
time = arr[i].first;
time -= arr[i].second;
}
}
if (time > 0)
cout << time;
else
cout << -1;
return 0;
}
pairでソートして降順にソートすると、逆に遡及すると、結果は負数または正数として表示されます.
正数であれば、朝寝坊できるということで、
負数が発生すると、どんなに早く起きてもすべての作業が完了しないため、-1を印刷します.
金の問題は大体難しいと思っていたが、思ったより簡単だったようだ.
Reference
この問題について([伯俊/BOJ]6068管理時間[Gold 5]), 我々は、より多くの情報をここで見つけました https://velog.io/@jychan99/백준BOJ-6068.-시간-관리하기-Gold-5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol