<Problem>
https://www.spoj.com/PTIT/problems/BCACM11H
#include <iostream>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int n, g;
cin >> n >> g;
long long sum = 0;
int numOfRows = 0;
int numOfColumns = 0;
int numOfMainDiag = 0;
int numOfAuxiliaryDiag = 0;
int row[30000 + 1]{ 0 };
int column[30000 + 1]{ 0 };
int mainDiag[30000 * 2]{ 0 };
int auxiliaryDiag[30000 * 2]{ 0 };
for (int i = 1; i <= g; i++) {
int k, x, y, s, t;
cin >> k >> x >> y >> s >> t;
sum = sum + k;
for (int j = 0; j <= k - 1; j++) {
if (row[x + j * s] == 0) {
row[x + j * s] = 1;
numOfRows++;
}
if (column[y + j * t] == 0) {
column[y + j * t] = 1;
numOfColumns++;
}
if (mainDiag[(y + j * t) - (x + j * s) + n] == 0) {
mainDiag[(y + j * t) - (x + j * s) + n] = 1;
numOfMainDiag++;
}
if (auxiliaryDiag[(n - (y + j * t) + 1) - (x + j * s) + n] == 0) {
auxiliaryDiag[(n - (y + j * t) + 1) - (x + j * s) + n] = 1;
numOfAuxiliaryDiag++;
}
}
}
sum = sum * 4 - numOfRows - numOfColumns - numOfMainDiag - numOfAuxiliaryDiag;
cout << sum << endl;
}
return 0;
}