BOJ_6068
👍 似たような問題をやったことが思い出せないが,どうせ簡単にやったのだ.
終了時間が一番大きいところから降順に並べばいいです. 高炉 の順序で、 未満の場合、 💻 完全なコード
💻 6068号:管理時間
정렬
および그리디
は簡単に説明できる.끝나는 시간 - 걸리는 시간
で計算された値が次の끝나는 시간
より大きい場合、更新される.걸리는 시간
はこの値から減算される.#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <queue>
#include <string.h>
using namespace std;
#define endl "\n"
bool compare(pair<int, int> a, pair<int, int>b)
{
if(a.second==b.second)
return a.first > b.first;
return a.second > b.second;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
vector<pair<int,int> > v;
for (int i = 0; i < N;i++)
{
int first, second;
cin >> first >> second;
v.push_back(make_pair(first, second));
}
sort(v.begin(), v.end(), compare);
int num = v[0].second - v[0].first;
for (int i = 1; i < v.size(); i++)
{
if(num > v[i].second)
num = v[i].second - v[i].first;
else
num -= v[i].first;
}
if(num < 0)
cout << -1 << endl;
else
cout << num << endl;
}
ああ!最後に得られた値が負数であれば、すべてが完了しないので、ifゲートで答えを共有してください.Reference
この問題について(BOJ_6068), 我々は、より多くの情報をここで見つけました https://velog.io/@luck2901/BOJ6068テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol