#include <iostream>#include <queue>#include <stdio.h>using namespace std;struct share{int price,size;friend bool operator< (share n1, share n2) { return n1.price< n2.price; }};priority_queue <share> q;int g[100001];int p[100001];int s[100001];int main(){int repeat,m,i;int total,temp;share tt;cin>>repeat;while(repeat--){ cin>>m; for(i=1;i<=m;i++) scanf("%d%d%d",&g[i],&p[i],&s[i]); while(!q.empty()) q.pop(); total=0; for(i=m;i>=1;i--) { tt.price=p[i]; tt.size=s[i]; q.push(tt); temp=g[i]; while(!q.empty()&&temp) { tt=q.top(); q.pop(); if(temp>=tt.size) { temp-=tt.size; total+=tt.size*tt.price; } else { total+=temp*tt.price; tt.size=tt.size-temp; q.push(tt); temp=0; } } } cout<<total<<endl;}return 0;}