EQ - Electronic queue
Tác giả: hieult
Ngôn ngữ: C++
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<cassert>
#include<ctime>
#include<algorithm>
#include<iterator>
#include<iostream>
#include<cctype>
#include<string>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<list>
//include<conio.h>
#define ep 0.000000001
#define maxn 10011
#define oo 1000000000
#define ooo 1ll << 62
//#define mod 111539786
#define TR(c, it) for(typeof((c).begin()) it=(c).begin(); it!=(c).end(); it++)
#define fi first
#define se second
#define max_size 4
double const PI=4*atan(1);
typedef long long int64;
using namespace std;
typedef pair<int, int> II;
typedef vector<int> VI;
typedef vector<II> VII;
typedef vector<VI> VVI;
typedef vector<VII> VVII;
int test, n, m , f[55], a , num, vitri, MIN,start,finish;
long long kq;
int main(){
// freopen("input.in","r",stdin);
// freopen("output.out","w",stdout);
scanf("%d",&test);
while(test --){
scanf("%d %d",&n,&m);
memset(f, 0, sizeof(f));
kq = 0;
for(int i = 0; i < m; i++){
scanf("%d %d",&a,&num);
vitri = 0, MIN = oo;
for(int j = 1; j <= n; j++){
if(f[j] < MIN){
vitri = j;
MIN = f[j];
}
}
start = max(f[vitri], a);
finish = start + num + 5;
kq += (long long)finish - a;
f[vitri] = finish;
// printf("%d %d\n",finish,a);
}
printf("%lld\n",kq);
}
// getch();
}