Cod sursa(job #698515)

Utilizator anamariaaAvram Ana-Maria anamariaa Data 29 februarie 2012 14:35:49
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
# include <fstream>
using namespace std;
ifstream fin("date.in");
ofstream fout("date.out");
int main ()
{
	int n,m,op=0,i,j,nr=0,x,a[101][101],b,c,k,v[101];
	fin>>n>>m;
	for (i=1;i<=n;i++)
		for (j=1;j<=m;j++)
			if (a[i][j]!=(i-1)*m+j) nr++;
	do {b=0;c=0;
		for (i=1;((i<=n)&&(b==0));i++)
			for (j=1;((j<=m)&&(b==0));j++)
				if (a[i][j]!=(i-1)*m+j) {b=i;c=j;}
		if (b!=0)
			{k=1;
			 v[1]=a[b][c];
			 do {j=a[b][c]%m;
				 if (j==0) j=m;
				 i=a[b][c]/m+1;
				 k++;
				 v[k]=a[i][j];
				 b=i;
				 c=j;
				}while (v[k]!=v[1]); 
			 op=op+k;
			 for (x=1;x<k;x++){ i=v[x]/m +1;
								j=v[x]%m;
								if (j==0) j=m;
								a[i][j]=v[x];
							  }
			 nr-=k-1;
			}
		} while (nr!=0);
	fout<<op<<'\n';
	return 0;
}