#include <bits/stdc++.h>
using namespace std;
#define faster ios_base::sync_with_stdio(false); cin.tie(NULL)
#define Bit(mask , i) ((mask >> i) & 1)
#define fi first
#define se second
#define _LOG2(nl) 31 - __builtin_clz(nl)
#define c_bit(nl) __builtin_popcount(nl)
#define ii pair<long long , int>
#define lll pair<long long , pair<long long , long long>>
#define lii pair<long long , pair<long long , int>>
#define iii pair<int , pair<int , int>>
#define iiii pair<pair<int , int> , pair<int , int>>
#define llll pair<pair<__int128 , __int128> , pair<__int128 , __int128>>
#define li pair<long long , int>
#define db long double
#define onBit(mask , i) (mask | (1 << i))
#define offBit(mask , i) (mask & (~(1 << i)))
const long long INF = 1e16;
const int N = 5e5 + 7;
const int M = 2e3 + 5e3 + 7;
const int S = 107;
vector<int> cand , query;
int n , m;
long long f[S * S] , ans[N];
long long Pre_res = 0;
struct gv{
long long p , s , c;
};
gv b[M];
bool cmp(gv x , gv y){
return x.p < y.p;
}
struct gv1{
long long p;
int id;
};
gv1 a[N];
bool cmp1(gv1 x , gv1 y){
return x.p < y.p;
}
void inp(){
cin >> n;
for (int i = 1 ; i <= n ; ++i){
cin >> a[i].p;
a[i].id = i;
}
cin >> m;
sort(a + 1 , a + n + 1 , cmp1);
for (int i = 1 ; i <= m ; ++i){
cin >> b[i].p >> b[i].s >> b[i].c;
}
sort(b + 1 , b + m + 1 , cmp);
}
void ktao(){
for (int j = 1 ; j <= 100 * 101 ; ++j)
f[j] = INF;
f[0] = 0;
}
void sol(long long P , long long P1 , long long Wbest , long long Cbest){
cout << P << " " << P1 << '\n';
for (int i = 0 ; i < cand.size() ; ++i){
cout << cand[i] << " ";
}
cout << '\n';
for (int j = 1 ; j <= 100 * 101 ; ++j){
for (int i = 0 ; i < cand.size() ; ++i){
int id = cand[i];
int W = min(b[id].s , P + j - b[id].p);
if (f[j - W] == INF) continue;
f[j] = min(f[j] , f[j - W] + b[id].c);
}
}
for (int i = 0 ; i < query.size() ; ++i){
int id = query[i];
long long Pi = a[id].p;
if (Pi - P + 1 > 100 * 100){
long long tmp = Pi - P + 1 , k = (tmp - 100 * 100) / Wbest;
long long res = Pre_res + k * Cbest + f[tmp - k * Wbest];
ans[a[id].id] = Pre_res + res;
}
else ans[a[id].id] = Pre_res + f[Pi - P + 1];
}
long long Pi = P1 - 1;
if (Pi - P + 1 > 100 * 100){
long long tmp = Pi - P + 1 , k = (tmp - 100 * 100) / Wbest;
long long res = Pre_res + k * Cbest + f[tmp - k * Wbest];
Pre_res += res;
}
else Pre_res += f[Pi - P + 1];
while (query.size()) query.pop_back();
int i = 0;
while (i < cand.size()){
int id = cand[i];
int W = min(b[id].s , P - b[id].p + 1);
if (W == b[id].s) cand.erase(cand.begin() + i);
else ++i;
}
}
void solve(){
ktao();
int i = 1 , j = 1;
b[m + 1].p = 1e9 + 1;
long long Wbest = b[1].s , Cbest = b[1].c;
while (j <= n){
int u = i;
cand.push_back(i);
while (u < m && b[u + 1].p == b[i].p){
++u;
cand.push_back(u);
if (Cbest * b[u].s < b[u].c * Wbest){
Wbest = b[u].s;
Cbest = b[u].c;
}
}
if (j < b[u + 1].p){
int v = j;
query.push_back(j);
while (v < n && a[v + 1].p < b[u + 1].p){
++v;
query.push_back(v);
}
j = v + 1;
}
sol(b[i].p , b[u + 1].p , Wbest , Cbest);
i = u + 1;
}
for (int i = 1 ; i <= n ; ++i){
cout << ans[i] << " ";
}
cout << '\n';
}
int main(){
faster;
inp();
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZmFzdGVyIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpCiNkZWZpbmUgQml0KG1hc2sgLCBpKSAoKG1hc2sgPj4gaSkgJiAxKQojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgX0xPRzIobmwpIDMxIC0gX19idWlsdGluX2NseihubCkKI2RlZmluZSBjX2JpdChubCkgX19idWlsdGluX3BvcGNvdW50KG5sKQojZGVmaW5lIGlpIHBhaXI8bG9uZyBsb25nICwgaW50PgojZGVmaW5lIGxsbCBwYWlyPGxvbmcgbG9uZyAsIHBhaXI8bG9uZyBsb25nICwgbG9uZyBsb25nPj4KI2RlZmluZSBsaWkgcGFpcjxsb25nIGxvbmcgLCBwYWlyPGxvbmcgbG9uZyAsIGludD4+CiNkZWZpbmUgaWlpIHBhaXI8aW50ICwgcGFpcjxpbnQgLCBpbnQ+PgojZGVmaW5lIGlpaWkgcGFpcjxwYWlyPGludCAsIGludD4gLCBwYWlyPGludCAsIGludD4+CiNkZWZpbmUgbGxsbCBwYWlyPHBhaXI8X19pbnQxMjggLCBfX2ludDEyOD4gLCBwYWlyPF9faW50MTI4ICwgX19pbnQxMjg+PgojZGVmaW5lIGxpIHBhaXI8bG9uZyBsb25nICwgaW50PgojZGVmaW5lIGRiIGxvbmcgZG91YmxlCiNkZWZpbmUgb25CaXQobWFzayAsIGkpIChtYXNrIHwgKDEgPDwgaSkpCiNkZWZpbmUgb2ZmQml0KG1hc2sgLCBpKSAobWFzayAmICh+KDEgPDwgaSkpKQoKY29uc3QgbG9uZyBsb25nIElORiA9IDFlMTY7CmNvbnN0IGludCBOID0gNWU1ICsgNzsKY29uc3QgaW50IE0gPSAyZTMgKyA1ZTMgKyA3Owpjb25zdCBpbnQgUyA9IDEwNzsKdmVjdG9yPGludD4gY2FuZCAsIHF1ZXJ5OwppbnQgbiAsIG07CmxvbmcgbG9uZyBmW1MgKiBTXSAsIGFuc1tOXTsKbG9uZyBsb25nIFByZV9yZXMgPSAwOwoKc3RydWN0IGd2ewogICAgbG9uZyBsb25nIHAgLCBzICwgYzsKfTsKCmd2IGJbTV07Cgpib29sIGNtcChndiB4ICwgZ3YgeSl7CiAgICByZXR1cm4geC5wIDwgeS5wOwp9CgpzdHJ1Y3QgZ3YxewogICAgbG9uZyBsb25nIHA7CiAgICBpbnQgaWQ7Cn07CgpndjEgYVtOXTsKCmJvb2wgY21wMShndjEgeCAsIGd2MSB5KXsKICAgIHJldHVybiB4LnAgPCB5LnA7Cn0KCnZvaWQgaW5wKCl7CiAgICBjaW4gPj4gbjsKICAgIGZvciAoaW50IGkgPSAxIDsgaSA8PSBuIDsgKytpKXsKICAgICAgICBjaW4gPj4gYVtpXS5wOwogICAgICAgIGFbaV0uaWQgPSBpOwogICAgfQoKICAgIGNpbiA+PiBtOwogICAgc29ydChhICsgMSAsIGEgKyBuICsgMSAsIGNtcDEpOwogICAgZm9yIChpbnQgaSA9IDEgOyBpIDw9IG0gOyArK2kpewogICAgICAgIGNpbiA+PiBiW2ldLnAgPj4gYltpXS5zID4+IGJbaV0uYzsKICAgIH0KICAgIHNvcnQoYiArIDEgLCBiICsgbSArIDEgLCBjbXApOwp9Cgp2b2lkIGt0YW8oKXsKICAgIGZvciAoaW50IGogPSAxIDsgaiA8PSAxMDAgKiAxMDEgOyArK2opCiAgICAgICAgZltqXSA9IElORjsKCiAgICBmWzBdID0gMDsKfQoKdm9pZCBzb2wobG9uZyBsb25nIFAgLCBsb25nIGxvbmcgUDEgLCBsb25nIGxvbmcgV2Jlc3QgLCBsb25nIGxvbmcgQ2Jlc3QpewogICAgY291dCA8PCBQIDw8ICIgIiA8PCBQMSA8PCAnXG4nOwogICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgY2FuZC5zaXplKCkgOyArK2kpewogICAgICAgIGNvdXQgPDwgY2FuZFtpXSA8PCAiICI7CiAgICB9CiAgICBjb3V0IDw8ICdcbic7CiAgICBmb3IgKGludCBqID0gMSA7IGogPD0gMTAwICogMTAxIDsgKytqKXsKICAgICAgICBmb3IgKGludCBpID0gMCA7IGkgPCBjYW5kLnNpemUoKSA7ICsraSl7CiAgICAgICAgICAgIGludCBpZCA9IGNhbmRbaV07CiAgICAgICAgICAgIGludCBXID0gbWluKGJbaWRdLnMgLCBQICsgaiAtIGJbaWRdLnApOwogICAgICAgICAgICBpZiAoZltqIC0gV10gPT0gSU5GKSBjb250aW51ZTsKICAgICAgICAgICAgZltqXSA9IG1pbihmW2pdICwgZltqIC0gV10gKyBiW2lkXS5jKTsKICAgICAgICB9CiAgICB9CgogICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgcXVlcnkuc2l6ZSgpIDsgKytpKXsKICAgICAgICBpbnQgaWQgPSBxdWVyeVtpXTsKICAgICAgICBsb25nIGxvbmcgUGkgPSBhW2lkXS5wOwogICAgICAgIGlmIChQaSAtIFAgKyAxID4gMTAwICogMTAwKXsKICAgICAgICAgICAgbG9uZyBsb25nIHRtcCA9IFBpIC0gUCArIDEgLCBrID0gKHRtcCAtIDEwMCAqIDEwMCkgLyBXYmVzdDsKICAgICAgICAgICAgbG9uZyBsb25nIHJlcyA9IFByZV9yZXMgKyBrICogQ2Jlc3QgKyBmW3RtcCAtIGsgKiBXYmVzdF07CgogICAgICAgICAgICBhbnNbYVtpZF0uaWRdID0gUHJlX3JlcyArIHJlczsKICAgICAgICB9CiAgICAgICAgZWxzZSBhbnNbYVtpZF0uaWRdID0gUHJlX3JlcyArIGZbUGkgLSBQICsgMV07CiAgICB9CiAgICBsb25nIGxvbmcgUGkgPSBQMSAtIDE7CiAgICBpZiAoUGkgLSBQICsgMSA+IDEwMCAqIDEwMCl7CiAgICAgICAgbG9uZyBsb25nIHRtcCA9IFBpIC0gUCArIDEgLCBrID0gKHRtcCAtIDEwMCAqIDEwMCkgLyBXYmVzdDsKICAgICAgICBsb25nIGxvbmcgcmVzID0gUHJlX3JlcyArIGsgKiBDYmVzdCArIGZbdG1wIC0gayAqIFdiZXN0XTsKCiAgICAgICAgUHJlX3JlcyArPSByZXM7CiAgICB9CiAgICBlbHNlIFByZV9yZXMgKz0gZltQaSAtIFAgKyAxXTsKCiAgICB3aGlsZSAocXVlcnkuc2l6ZSgpKSBxdWVyeS5wb3BfYmFjaygpOwoKICAgIGludCBpID0gMDsKICAgIHdoaWxlIChpIDwgY2FuZC5zaXplKCkpewogICAgICAgIGludCBpZCA9IGNhbmRbaV07CiAgICAgICAgaW50IFcgPSBtaW4oYltpZF0ucyAsIFAgLSBiW2lkXS5wICsgMSk7CiAgICAgICAgaWYgKFcgPT0gYltpZF0ucykgY2FuZC5lcmFzZShjYW5kLmJlZ2luKCkgKyBpKTsKICAgICAgICBlbHNlICsraTsKICAgIH0KfQoKdm9pZCBzb2x2ZSgpewogICAga3RhbygpOwogICAgaW50IGkgPSAxICwgaiA9IDE7CiAgICBiW20gKyAxXS5wID0gMWU5ICsgMTsKICAgIGxvbmcgbG9uZyBXYmVzdCA9IGJbMV0ucyAsIENiZXN0ID0gYlsxXS5jOwogICAgd2hpbGUgKGogPD0gbil7CiAgICAgICAgaW50IHUgPSBpOwoKICAgICAgICBjYW5kLnB1c2hfYmFjayhpKTsKICAgICAgICB3aGlsZSAodSA8IG0gJiYgYlt1ICsgMV0ucCA9PSBiW2ldLnApewogICAgICAgICAgICArK3U7CiAgICAgICAgICAgIGNhbmQucHVzaF9iYWNrKHUpOwogICAgICAgICAgICBpZiAoQ2Jlc3QgKiBiW3VdLnMgPCBiW3VdLmMgKiBXYmVzdCl7CiAgICAgICAgICAgICAgICBXYmVzdCA9IGJbdV0uczsKICAgICAgICAgICAgICAgIENiZXN0ID0gYlt1XS5jOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoaiA8IGJbdSArIDFdLnApewogICAgICAgICAgICBpbnQgdiA9IGo7CiAgICAgICAgICAgIHF1ZXJ5LnB1c2hfYmFjayhqKTsKICAgICAgICAgICAgd2hpbGUgKHYgPCBuICYmIGFbdiArIDFdLnAgPCBiW3UgKyAxXS5wKXsKICAgICAgICAgICAgICAgICsrdjsKICAgICAgICAgICAgICAgIHF1ZXJ5LnB1c2hfYmFjayh2KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBqID0gdiArIDE7CiAgICAgICAgfQoKICAgICAgICBzb2woYltpXS5wICwgYlt1ICsgMV0ucCAsIFdiZXN0ICwgQ2Jlc3QpOwogICAgICAgIGkgPSB1ICsgMTsKICAgIH0KCiAgICBmb3IgKGludCBpID0gMSA7IGkgPD0gbiA7ICsraSl7CiAgICAgICAgY291dCA8PCBhbnNbaV0gPDwgIiAiOwogICAgfQogICAgY291dCA8PCAnXG4nOwp9CgppbnQgbWFpbigpewogICAgZmFzdGVyOwogICAgaW5wKCk7CiAgICBzb2x2ZSgpOwogICAgcmV0dXJuIDA7Cn0K