Pagini recente » Cod sursa (job #1566474) | Cod sursa (job #1786841) | Cod sursa (job #22951) | Cod sursa (job #554568) | Cod sursa (job #25145)
Cod sursa(job #25145)
#include<stdio.h>
#include<math.h>
int main(){
int mat[32000],mat1[32000],mat2[32000];
long ct=0;
freopen("puteri.out","w+",stdout);
freopen("puteri.in","rt",stdin);
long n,i,j,k,po,q;
scanf("%ld",&n);
for(i=0;i<n;i++)
scanf("%d%d%d",&mat[i],&mat1[i],&mat2[i]);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++){
po=mat[i]+mat[j];
q=0;
if(!po){
po=mat1[i]+mat1[j];
q=1;
}
if(!po){
po=mat2[i]+mat2[j];
q=2;
}
for(k=0;po%2==0&&po>2;po/=2,k++);
if(!k){
if(po!=1)
if((mat[i]+mat[j])==po||!(mat[i]+mat[j]))
if((mat1[i]+mat1[j])==po||!(mat1[i]+mat1[j]))
if((mat2[i]+mat2[j])==po||!(mat2[i]+mat2[j]))
ct++;}
else{
for(;k>0;k--){
if(q==0)
if((mat[i]+mat[j])==po*pow(2,k)||!(mat[i]+mat[j]))
if((mat1[i]+mat1[j])==po||!(mat1[i]+mat1[j]))
if((mat2[i]+mat2[j])==po||!(mat2[i]+mat2[j]))
ct++;
if(q==1)
if((mat[i]+mat[j])==po||!(mat[i]+mat[j]))
if((mat1[i]+mat1[j])==po*pow(2,k)||!(mat1[i]+mat1[j]))
if((mat2[i]+mat2[j])==po||!(mat2[i]+mat2[j]))
ct++;
if(q==2)
if((mat[i]+mat[j])==po||!(mat[i]+mat[j]))
if((mat1[i]+mat1[j])==po||!(mat1[i]+mat1[j]))
if((mat2[i]+mat2[j])==po*pow(2,k)||!(mat2[i]+mat2[j]))
ct++;
}
}
}
printf("%ld",ct);
return 1;
}