#include <bits/stdc++.h>

using namespace std;

typedef long long ll; typedef pair< int, int > pair_t;

const int N = 50000; ll elapsed_time[ N + 1 ];

struct pending_tasks_t: vector< int >
{
    int order( int i )
    {
        return lower_bound( begin(), end(), i ) - begin();
    }

    void remove_task( int i )
    {
        erase( lower_bound( begin(), end(), i ) );
    }
};

int main()
{
    int n; cin >> n; vector< pair_t > task; pending_tasks_t p; ll time = n;

    for( int i = 1; i <= n; i++ )
    {
        int t; cin >> t;

        if ( t == 1 )
            elapsed_time[ i ] = i;
        else
            task.emplace_back( t, i ), p.push_back( i );
    }

    sort( task.begin(), task.end() );

	for( int i = 0, it = 2, k = 0, m = task.size(), remaining = m, t; i < m; i += k, it = t + 1, k = 0 )
    {
        time += ( ( t = task[ i ].first ) - it ) * ll( remaining ) + 1;

		for( int j = i, q; j < m and task[ j ].first == t; j++, k++ )
            q = task[ j ].second, elapsed_time[ q ] = time + p.order( q );

		for( int j = 0; j < k; j++ )
            p.remove_task( task[ i + j ].second );

        time += remaining - 1, remaining -= k;
	}

	for( int i = 1; i <= n;i++ )
		cout << elapsed_time[ i ] << '\n';
}