Pagini recente » Cod sursa (job #1585208) | Cod sursa (job #1546241) | Cod sursa (job #486275) | Cod sursa (job #1238182) | Cod sursa (job #774390)
Cod sursa(job #774390)
#include<iostream>
#include<fstream>
using namespace std;
int a[101][101],v[10001],lin[101],col[101];
inline int verifica(int n, int sum)
{
int i;
for(i=1;i<=n;i++) {
if(a[i][0]!=sum)
lin[++lin[0]]=i;
if(a[0][i]!=sum)
col[++col[0]]=i;
}
if(col[0] || lin[0])
return 0;
return 1;
}
int main ()
{
int n,i,j,poz,sum,i1,i2,j1,j2,val1,val2;
ifstream f("magic2.in");
ofstream g("magic2.out");
f>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
f>>a[i][j];
f.close();
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) {
a[0][j]=a[0][j]+a[i][j];
a[i][0]=a[i][0]+a[i][j];
}
for(i=1;i<=n;i++) {
v[a[i][0]]++;
v[a[0][i]]++;
}
poz=0;
for(i=1;i<=10000;i++)
if(v[poz]<v[i])
poz=i;
sum=poz;
if(verifica(n,sum)) {
g<<"magic"<<'\n';
i1=-1;
}
else if(lin[0]==1 && col[0]==2) {
i1=lin[1];
i2=lin[1];
j1=col[1];
j2=col[2];
val1=a[i1][j1]+sum-a[0][j1];
val2=a[i2][j2]+sum-a[0][j2];
}
else if(lin[0]==2 && col[0]==1) {
i1=lin[1];
i2=lin[2];
j1=col[1];
j2=col[1];
val1=a[i1][j1]+sum-a[i1][0];
val2=a[i2][j2]+sum-a[i2][0];
}
else if(lin[0]==2 && col[0]==2) {
i1=lin[1];
i2=lin[2];
j1=col[1];
j2=col[2];
val1=a[i1][j1]+sum-a[i1][0];
val2=a[i2][j2]+sum-a[i2][0];
if(a[0][j1]-a[i1][j1]+val1!=sum || a[0][j2]-a[i2][j2]+val2!=sum) {
i1=lin[1];
i2=lin[2];
j1=col[2];
j2=col[1];
val1=a[i1][j1]+sum-a[i1][0];
val2=a[i2][j2]+sum-a[i2][0];
}
}
else if(lin[0]==1 && col[0]==1) {
i1=lin[1];
i2=lin[1];
j1=lin[1];
j2=col[1];
val1=a[i1][j1]+sum-a[i1][0];
val2=val1;
}
if(i1!=-1) {
g<<"nu este magic"<<'\n';
g<<i1<<" "<<j1<<" "<<i2<<" "<<j2<<'\n';
g<<val1<<" "<<val2<<'\n';
}
g.close();
return 0;
}