코드
17점
#include <iostream>
#include <vector>
int main()
{
std::vector<int> CityLen;
std::vector<int> oil;
long long result = 0;
long long sum = 0;
int N;
std::cin >> N;
CityLen.resize(N - 1);
oil.resize(N);
for (int i = 0; i < N-1; i++)
{
std::cin >> CityLen[i];
sum += CityLen[i];
}
for (int i = 0; i <N; i++)
{
std::cin >> oil[i];
}
result = oil[0] * sum;
for (int i = 0; i < N-1; i++)
{
long long checksum = sum;
long long checknum = 0;
for (int j = 0; j <= i; j++)
{
checknum += (oil[j] * CityLen[j]);
checksum -= CityLen[j];
}
checknum += (CityLen[i] * checksum);
if (result <= checknum)
{
break;
}
else
{
result = checknum;
}
}
std::cout << result;
}
58점
#include <iostream>
#include <vector>
int main()
{
std::vector<int> dist;
std::vector<int> oilcost;
long long result = 0;
int CurCost = 0;
int N;
std::cin >> N;
dist.resize(N - 1);
oilcost.resize(N);
for (int i = 0; i < N-1; i++)
{
std::cin >> dist[i];
}
for (int i = 0; i <N; i++)
{
std::cin >> oilcost[i];
}
CurCost = oilcost[0];
for (int i = 0; i < N-1; i++)
{
if (CurCost > oilcost[i])
{
CurCost = oilcost[i];
}
result += (CurCost * dist[i]);
}
std::cout << result;
}
100 점
#include <iostream>
#include <vector>
int main()
{
std::vector<int> dist;
std::vector<int> oilcost;
long long result = 0;
long long CurCost = 0;
int N;
std::cin >> N;
dist.resize(N-1);
oilcost.resize(N);
for (int i = 0; i < N-1; i++)
{
std::cin >> dist[i];
}
for (int i = 0; i <N; i++)
{
std::cin >> oilcost[i];
}
CurCost = static_cast<long long>(oilcost[0]);
for (int i = 0; i < N-1; i++)
{
if (CurCost > static_cast<long long>(oilcost[i]))
{
CurCost = static_cast<long long>(oilcost[i]);
}
result += (CurCost * static_cast<long long>(dist[i]));
}
std::cout << result;
}
'C++ > 백준 C++' 카테고리의 다른 글
C++ 1009 분산 처리 [구현] (0) | 2024.11.06 |
---|---|
C++ 1475 방 번호 [구현] (0) | 2024.11.05 |
C++ 3190 뱀 [시물레이션] (0) | 2024.10.26 |
C++ 15486 퇴사 2 [DP] (0) | 2024.10.25 |
C++ 14889 스타트와 링크 [DFS, 백트래킹] (0) | 2024.10.24 |