Pagini recente » Cod sursa (job #3253219) | Cod sursa (job #2203085) | Cod sursa (job #2833871) | Cod sursa (job #2180671) | Cod sursa (job #28693)
Cod sursa(job #28693)
#include <stdio.h>
int n;
unsigned short pos[70][70][70];
unsigned prod(int a, int b, int c, int a2, int b2, int c2)
{
if (a!=a2 || b!=b2 || c!=c2) return pos[a][b][c]*pos[a2][b2][c2];
else return pos[a][b][c]*(pos[a2][b2][c2]-1);
}
int main()
{
freopen("puteri.in", "r", stdin);
freopen("puteri.out", "w", stdout);
scanf("%d", &n);
int i,a,b,c;
for (i=0; i<n; i++){
scanf("%d %d %d", &a, &b, &c);
pos[a][b][c]++;
}
long long sol=0;
for (i=1; i<=128; i++){
int last=i+1, p=0;
if (last>65) last=65;
while (i-p>64) p++;
for (a=p; a<last; a++)
for (b=p; b<last; b++)
for (c=p; c<last; c++)
sol+=prod(a,b,c,i-a,i-b,i-c);
}
for (i=1; i<=128; i++)
for (int mask=1; mask<7; mask++){
int pa=65, pb=65, pc=65;
int last=i+1;
if (last>65) last=65;
if (mask & 1) pa=1;
if (mask & 2) pb=1;
if (mask & 4) pc=1;
for (a=0; a<last; a+=pa)
if (i-a<65)
for (b=0; b<last; b+=pb)
if (i-b<65)
for (c=0; c<last; c+=pc)
if (i-c<65){
int a2=i-a, b2=i-b, c2=i-c;
if (pa>1) a2=0;
if (pb>1) b2=0;
if (pc>1) c2=0;
long long old=sol;
sol+=prod(a, b, c, a2, b2, c2);
}
}
printf("%lld\n", sol/2);
return 0;
}