Pagini recente » Autentificare | Cod sursa (job #2137113) | Cod sursa (job #1897648) | Cod sursa (job #3201941) | Cod sursa (job #1397030)
#include <fstream>
#define dim 100001
#define mod 9917
using namespace std;
ifstream fin("inv.in");
ofstream fout("inv.out");
int n,v[dim],sol,i,b[dim];
void interclasare(int st,int m, int dr)
{
int i=st,j=m+1,nr=0;
while(i<=m&&j<=dr)
{
if(v[i]<=v[j])
{
b[++nr]=v[i];
if(i<=m)
i++;
}
else
{
b[++nr]=v[j];
j++;
sol=(sol+(m-i+1))%mod;
}
}
while(j<=dr)
{
b[++nr]=v[j++];
}
while(i<=m)
{
b[++nr]=v[i++];
}
nr=1;
for(int i=st;i<=dr;i++)
v[i]=b[nr++];
}
void divimp(int st, int dr)
{
if(st<dr)
{
int m=(st+dr)/2;
divimp(st,m);
divimp(m+1,dr);
interclasare(st,m,dr);
}
}
int main()
{
fin>>n;
for(i=1;i<=n;i++)
fin>>v[i];
divimp(1,n);
fout<<sol%mod;
return 0;
}