25년 간의 수행 끝에 원재는 미래를 보는 능력을 갖게 되었다. 이 능력으로 원재는 사재기를 하려고 한다.
다만 당국의 감시가 심해 한 번에 많은 양을 사재기 할 수 없다.
다음과 같은 조건 하에서 사재기를 하여 최대한의 이득을 얻도록 도와주자.
1. 원재는 연속된 N일 동안의 물건의 매매가를 예측하여 알고 있다.
2. 당국의 감시망에 걸리지 않기 위해 하루에 최대 1만큼 구입할 수 있다.
3. 판매는 얼마든지 할 수 있다.
예를 들어 3일 동안의 매매가가 1, 2, 3 이라면 처음 두 날에 원료를 구매하여 마지막 날에 팔면 3의 이익을 얻을 수 있다.
맨 뒤 원소부터 한칸씩 앞으로 탐색을 진행한다. (현재 max는 맨 뒤 원소)
현재 max보다 값이 작거나 같은 경우 answer에 그 차이를 저장한다.
현재 max보다 값이 큰 경우 max를 갱신한다.
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(int argc, char** argv)
{
int test_case;
int T,n,num;
cin>>T;
for(test_case = 1; test_case <= T; ++test_case)
{
cin>>n;
vector<int>v;
long long answer=0;
for(int i=0;i<n;i++){
cin>>num;
v.push_back(num);
}
int temp_max=v[n-1];
for(int i=n-1;i>=0;i--){
if(v[i]<=temp_max){
answer+=(temp_max-v[i]);
}
else{
temp_max=v[i];
}
}
cout<<"#"<<test_case<<" "<<answer<<"\n";
}
return 0;
}