λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ”₯ PS(Problem Solving) πŸ”₯/BOJ

[BOJ] #14501 퇴사

by dar0m! 2019. 9. 19.
μ‹œκ°„ μ œν•œ λ©”λͺ¨λ¦¬ μ œν•œ μ •λ‹΅ λΉ„μœ¨
2 초 512 MB 46.680%

 

 

14501번: 퇴사

첫째 쀄에 백쀀이가 얻을 수 μžˆλŠ” μ΅œλŒ€ 이읡을 좜λ ₯ν•œλ‹€.

www.acmicpc.net

 

주어진 N일 λ™μ•ˆμ— 백쀀이가 μ΅œλŒ€μ˜ 이읡을 λ³Ό 수 μžˆλ„λ‘ 일을 선택해야 ν•œλ‹€.

 

ν‹€λ Έλ˜ 이유

μ‹œμž‘ν•˜λŠ” λ‚ μ§œλ₯Ό st, λλ‚˜λŠ” λ‚ μ§œλ₯Ό end 보수λ₯Ό p 라고 봀을 λ•Œ end 값을 κΈ°μ€€μœΌλ‘œ μ˜€λ¦„μ°¨μˆœ 정렬을 ν•˜μ—¬ pλ₯Ό λ”ν–ˆλ‹€κ°€ 틀렀버렸닀.. λΆ„λͺ… 2λ…„ μ „ μŠ€ν„°λ””ν•˜λ©΄μ„œ ν’€μ—ˆμ„ λ•ŒλŠ” λˆ„κ΅°κ°€κ°€ μ΄λ ‡κ²Œ ν’€μ—ˆμ—ˆλŠ”λ° μ˜ˆμ™Έμ²˜λ¦¬κ°€ λ– μ˜€λ₯΄μ§€ μ•Šμ•„ dp둜 κ³ μ³μ„œ λ‹€μ‹œ ν’€μ—ˆλ‹€.

 

λ©”λͺ¨λ¦¬ μ‹œκ°„
1988 KB 0 ms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef pair<intint> p;
vector<pair<p, int>> v;
 
bool cmp(pair<p, int > a, pair<p, int> b) {
    return a.first.second < b.first.second;
}
int n;
int main() {
    scanf("%d"&n);
    for (int i = 1, a, b; i <= n; i++) {
        scanf("%d %d"&a, &b);
        v.push_back({ {i, i+a}, b });
    }
    sort(v.begin(), v.end(), cmp);
 
    int st = 0end = 0, ans = 0;
    for (int i = 0; i < v.size(); i++) {
        if (v[i].first.second > n+1continue;
        if (v[i].first.first >= end) {
            ans += v[i].second;
            end = v[i].first.second;
        }
    }
    printf("%d", ans);
    return 0;
}
 
cs

 

 

ν‹€λ Έλ˜ μ½”λ“œλ₯Ό 보고 μ‹Άλ‹€λ©΄ μ—¬κΈ°λ‘œ...

λŒ“κΈ€