티스토리 뷰

문제 링크입니다 : https://www.acmicpc.net/problem/16437

 

16437번: 양 구출 작전

2, 3, 5번에 사는 모든 양들은 1번 섬으로 갈 수 있지만 7번 섬에 사는 양들은 1번 섬으로 가기 위하여 6번 섬을 거쳐야 하는데 6번 섬에 사는 늑대들의 수가 7번 섬에 사는 양들의 수보다 많으므로

www.acmicpc.net

 

 

 

 

 

 

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
typedef long long ll;

int N;
vector<vector<int>> adj;

vector<ll> sheep;

ll getSaveSheepNum(int here) {
    if(adj[here].size() == 0) return max(sheep[here], (ll)0);

    ll ret = sheep[here];

    for(int i = 0; i < adj[here].size(); i++) {
        ret += getSaveSheepNum(adj[here][i]);
    }

    return max(ret, (ll)0);
}

int main() {
    cin >> N;
    adj.assign(N + 1, vector<int>());
    sheep.assign(N + 1, 0);

    char cmd;
    ll num;
    int u;
    for(int i = 2; i <= N; i++) {
        cin >> cmd >> num >> u;
        if(cmd == 'S') sheep[i] = num;
        else sheep[i] = -num;
        adj[u].push_back(i);
    }

    cout << getSaveSheepNum(1);


    return 0;
}

 

 

 

개발 환경 : vscode

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

 

'알고리즘 > 백준(BOJ)' 카테고리의 다른 글

백준 - 1351 무한 수열  (0) 2020.08.21
백준 - 1269 대칭 차집합  (0) 2020.08.21
백준 - 1068 트리  (0) 2020.08.20
백준 - 4803 트리  (0) 2020.08.20
백준 - 17203 ∑|ΔEasyMAX|  (0) 2020.08.20
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
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
글 보관함