Pagini recente » Cod sursa (job #622582) | Cod sursa (job #1217941) | Cod sursa (job #1599188) | Cod sursa (job #2765476) | Cod sursa (job #24936)
Cod sursa(job #24936)
using namespace std;
#include <cstdio>
#include <cstring>
#define FIN "puteri.in"
#define FOUT "puteri.out"
#define MAX_N 100010
int T[128][128][128];
int N, A[MAX_N], B[MAX_N], C[MAX_N], ans;
int cnt1, cnt2, cnt3, v[3][256], w[256][256];
int main()
{
int i, t;
freopen("puteri.in", "r", stdin);
freopen("puteri.out", "w", stdout);
scanf("%d", &N);
cnt1 = cnt2 = cnt3 = 0;
memset(v, 0, sizeof(v));
memset(w, 0, sizeof(w));
for (ans = i = 0; i < N; ++i) {
scanf("%d %d %d", A+i, B+i, C+i);
if (!A[i]) ans += v[1][B[i]-C[i]+64];
if (!B[i]) ans += v[2][A[i]-C[i]+64];
if (!C[i]) ans += v[3][A[i]-B[i]+64];
ans += w[A[i]-B[i]+64][A[i]-C[i]+64];
if (!B[i] && !C[i]) ++cnt1;
if (!A[i] && !C[i]) ++cnt2;
if (!A[i] && !B[i]) ++cnt3;
if (!A[i]) ++v[1][C[i]-B[i]+64];
if (!B[i]) ++v[2][C[i]-A[i]+64];
if (!C[i]) ++v[3][B[i]-A[i]+64];
++w[B[i]-A[i]+64][C[i]-A[i]+64];;
}
ans += cnt1*(cnt1-1)/2+cnt2*(cnt2-1)/2+cnt3*(cnt3-1)/2;
printf("%d\n", ans);
return 0;
}