Pagini recente » Cod sursa (job #2465712) | Cod sursa (job #635874) | Cod sursa (job #1815558) | Cod sursa (job #1263312) | Cod sursa (job #1231079)
#include <fstream>
#include <vector>
#define lmax 51
#define inf 100
using namespace std;
ifstream f("boundingbox.in");
ofstream g("boundingbox.out");
char c;
inline void solve()
{
int i,j,n,m,nr=0,arie=0;
int lma,lmi,cma,cmi;
bool a[lmax][lmax];
vector <pair<int,int> >v;
f>>n>>m;
for (i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
f>>c;
a[i][j]=c-48;
if (a[i][j])
v.push_back(make_pair(i,j));
}
for (i=0;i<v.size();i++)
{
lma=-inf;
cma=-inf;
lmi=inf;
cmi=inf;
for (j=i;j<v.size();j++)
{
if (v[j].first<lmi)
lmi=v[j].first;
if (v[j].first>lma)
lma=v[j].first;
if (v[j].second<cmi)
cmi=v[j].second;
if (v[j].second>cma)
cma=v[j].second;
arie+=(lma-lmi+1)*(cma-cmi+1);
nr++;
}
}
if (arie && nr)
{
int ariee=arie,nrr=nr;
int r=arie%nr,rr;
while (nr)
{
rr=arie%nr;
arie=nr;
nr=r;
r=rr;
}
g<<ariee/arie<<"/"<<nrr/arie<<'\n';
}
else
g<<0<<"/"<<1<<'\n';
}
int main()
{
int t;
f>>t;
for (int i=1;i<=t;i++)
solve();
f.close();
g.close();
}