Pagini recente » Statistici Alexa Sergiu (antoniu200) | Cod sursa (job #3032343) | Cod sursa (job #2880192) | Cod sursa (job #1720596) | Cod sursa (job #338625)
Cod sursa(job #338625)
#include<fstream.h>
int n,m;
long x[250][2000];
long y[250][9];
long f=0;
void read();
void srch();
void out();
int main()
{
read();
srch();
out();
return 0;
}
void read()
{
ifstream fin("fold.in");
fin>>n>>m;
int i,j,z1;
for (i=0;i<n;i++)
{
z1=0;
for (j=0;j<m;j++)
{
fin>>x[i][j];
if (x[i][j]==true)
y[i][z1]|=1<<j;
if (j%32==0 && j!=0)
z1++;
}
}
fin.close();
}
void srch()
{
int i,j,i2,p,ax,ax2,k;
ax2=n/32;
for (i=0;i<n-1;i++)
for (j=0;j<m-1;j++)
{
if (j==0 && i==0)
{
}
else
if (j==0)
{
ax=(i-1)/32;
k=(m-2)%32;
y[i-1][ax]&=~(1<<k);
}
else
{
ax=i/32;
k=(j-1)%32;
y[i][ax]&=~(1<<k);
}
if (x[i][j])
for (i2=i+1;i2<n;i2++)
if (x[i2][j])
{
ax=(i+1)/32;
for (p=ax;p<=ax2;p++)
{
k=y[i][p] & y[i2][p];
k&=k-1;
while (k)
{
k&=k-1;
f++;
}
}
}
}
}
void out()
{
ofstream fout("fold.out");
fout<<f;
fout.close();
}