※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 26267번 문제인 은?행 털!자 1이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/26267
26267번: 은?행 털!자 1
프로 은행강도 시우가 은행을 털려고 한다. 시우가 달려가는 일직선 경로 위엔 $N$개의 은행이 있다. $i$번째 은행은 직선상에서 서로 다른 좌표 $X_i$에 위치하며, 시간이 정확히 $T_i$ 일 때만 문이
www.acmicpc.net
좌표
모든 가능한 시작 좌표에 대하여 탐색하기에는 필요한 탐색 범위가 넓으므로, "시우가 은행을 방문할 수 있는 각 시작 좌표"에 대하여 방문할 수 있는 모든 은행을 map 등의 자료구조를 활용해 모아서 문제를 해결하자.
아래는 제출한 소스코드이다.
#include <iostream>
#include <map>
#include <vector>
using namespace std;
typedef long long ll;
int N;
map<ll, ll> mp;
ll ans;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N;
while (N--) {
ll X, T, C; cin >> X >> T >> C;
X -= T;
if (mp.count(X)) mp[X] += C;
else mp.insert(make_pair(X, C));
}
for (auto &p : mp) {
ans = max(ans, p.second);
}
cout << ans;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 26596 // C++] 황금 칵테일 (0) | 2024.03.08 |
---|---|
[BOJ 28446 // C++] 볼링공 찾아주기 (0) | 2024.03.07 |
[BOJ 20157 // C++] 화살을 쏘자! (1) | 2024.03.05 |
[BOJ 14670 // C++] 병약한 영정 (0) | 2024.03.04 |
[BOJ 16506 // C++] CPU (0) | 2024.03.03 |