#include <bits/stdc++.h>
using namespace std;
long long int M = 1e9 + 7;
long long int n, k, m;
long long int z, q, u, l, r, ax, cx, ay, by, cy, ql, qr, d, x, y;
long long int a[400005];
char a1[405][405];
long long int me(long long int a, long long int b, long long int M) {
  if (b == 0)
    return 1;
  else if (b % 2 == 0)
    return me((a * a) % M, b / 2, M);
  else
    return (a % M * me((a * a) % M, (b - 1) / 2, M) % M) % M;
}
bool cmp(pair<long long int, long long int> a,
         pair<long long int, long long int> b) {
  return a.first > b.first;
}
bool cmp1(pair<long long int, long long int> a,
          pair<long long int, long long int> b) {
  return a.second < b.second;
}
long long int mI(long long int a, long long int m) { return me(a, m - 2, m); }
long long int cnt[27];
string s1[6000];
long long int dp[400005];
long long int df[1005];
long long int df1[1005];
struct edge {
  long long int x, y, z;
};
int main() {
  cin >> n;
  map<long long int, long long int> gh;
  a[0] = 0;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    gh[a[i]] = i;
  }
  dp[0] = 0;
  for (int i = 1; i <= n; i++) {
    dp[i] = dp[i - 1] + 20;
    long long int dd = a[i] - 90;
    long long int dd1 = a[i] - 1440;
    if (*lower_bound(a, a + n + 1, dd) != dd)
      dp[i] = min(dp[i], dp[gh[*(lower_bound(a, a + n + 1, dd))] - 1] + 50);
    else
      dp[i] = min(dp[i], dp[gh[dd]] + 50);
    if (*lower_bound(a, a + n + 1, dd1) != dd1)
      dp[i] = min(dp[i], dp[gh[*(lower_bound(a, a + n + 1, dd1))] - 1] + 120);
    else
      dp[i] = min(dp[i], dp[gh[dd1]] + 120);
    cout << dp[i] - dp[i - 1] << endl;
  }
}
