Search
Duplicate
📗

주유소

주차
문제번호
13305
언어
C++
티어
실버
유형
그리디
nj_Blog
nj_상태
이해도
100%
풀이
사람
이해도 2
13 more properties

문제접근

현재 있는 도시의 기름값보다 싼 도시를 찾는다.
그 도시까지 가고 다시 그 도시보다 기름값이 싼 도시를 찾으면서 가면 됨

놓쳤던 부분

answer를 구하는 과정에서 오버플로우가 날 것을 대비하여 answer의 자료형을 long long 으로 해두었지만 정작 city와 distance의 자료형을 바꿔두지 않아 자료형에 의한 오버플로우 발생

코드

3588 KB

24 ms

#include <iostream> #include <vector> using namespace std; int main(void) { int n; int idx; vector<long long> city; vector<long long> distance; long long answer = 0; ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; city.resize(n); distance.resize(n); for (int i = 0; i < n - 1; i++) cin >> distance[i]; for (int i = 0; i < n; i++) cin >> city[i]; for (int i = 0; i < n; i++) { idx = i; for (int j = i; j < n; j++) { answer += (city[idx] * distance[j]); if (city[idx] >= city[j + 1]) { i = j; break ; } } } cout << answer; return (0); }
C++
복사