记录一个菜逼的成长。。
dp[i] := 表示以第i个旅行结尾的最少花费。
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int INF = 0x3f3f3f3f;
const int maxn = 100000 + 10;
int a[maxn],dp[maxn];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int n;
while(cin>>n){
int pre = 0;
for( int i = 1; i <= n; i++ ){
cin>>a[i];
}
fill(dp,dp+n+1,INF);
dp[0] = 0;
for( int i = 1; i <= n; i++ ){
dp[i] = dp[i-1] + 20;
int pos = upper_bound(a+1,a+1+i,a[i] - 90) - a;
dp[i] = min(dp[i],dp[pos-1]+50);
pos = upper_bound(a+1,a+1+i,a[i] - 1440) - a;
dp[i] = min(dp[i], dp[pos-1]+120);
cout<<dp[i] - dp[i-1]<<endl;
}
}
return 0;
}