Pagini recente » Cod sursa (job #1691076) | Cod sursa (job #1194256) | Cod sursa (job #2580060) | Cod sursa (job #1523658) | Cod sursa (job #542438)
Cod sursa(job #542438)
#include <algorithm>
using namespace std;
#define MOD 999017
#define DIM 1005
int p[DIM],v[DIM];
int N,nrt;
void read ()
{
scanf ("%d",&N);
}
void solve ()
{
int i,j,sorted,steps,invers;
for (i=1; i<=N; ++i)
p[i]=i;
do
{
steps=0;
for (i=1; i<=N; ++i)
v[i]=p[i];
do
{
sorted=1;
for (i=1; i<N; ++i)
if (v[i]>v[i+1])
{
swap (v[i],v[i+1]);
sorted=0;
++steps;
}
}
while (!sorted);
invers=0;
for (i=1; i<=N; ++i)
v[i]=p[i];
for (i=1; i<=N; ++i)
if (v[i]!=i)
for (j=i+1; j<=N; ++j)
if (v[j]==i)
{
++invers;
swap (v[i],v[j]);
}
if (steps>invers)
nrt=(nrt+1)%MOD;
}
while (next_permutation (p+1,p+N+1));
}
int main ()
{
freopen ("sortari2.in","r",stdin);
freopen ("sortari2.out","w",stdout);
read ();
solve ();
printf ("%d",nrt);
return 0;
}