Pagini recente » Cod sursa (job #2718385) | Cod sursa (job #2672342) | Cod sursa (job #1713662) | Cod sursa (job #3030016) | Cod sursa (job #1896382)
#include <stdio.h>
#define nmax 200
unsigned short v[nmax][nmax];
int co;
void ciclu( int lstart, int cstart, int n, int m ){
int nr, aux, l, c;
co++;
nr = v[lstart][cstart];
l = lstart;
c = cstart;
while( v[lstart][cstart] != lstart*m+cstart+1 ){
l = ( nr -1 ) / m;
c = nr - l * m - 1;
aux = v[l][c];
v[l][c] = nr;
nr = aux;
co++;
}
}
int main()
{
int i, j, n, m, nr;
FILE *fin, *fout;
fin = fopen( "bombon.in", "r" );
fscanf( fin, "%d%d", &n, &m );
for( i=0; i<n; i++ ){
for( j=0; j<m; j++ ){
fscanf( fin, "%hd", &v[i][j] );
}
}
fclose( fin );
for( i=0; i<n; i++ ){
for( j=0; j<m; j++ ){
if( v[i][j] != i*m+j+1 )
ciclu( i, j, n, m );
}
}
fout = fopen( "bombon.out", "w" );
fprintf( fout, "%d\n", co );
fclose( fout );
return 0;
}