Pagini recente » Cod sursa (job #3241827) | Cod sursa (job #116270) | Cod sursa (job #580458) | Cod sursa (job #2203222) | Cod sursa (job #2998969)
#include <fstream>
using namespace std;
ifstream cin("barman.in");
ofstream cout("barman.out");
int vec[603],sorted[603];
int ind,n,result,c,x,aux;
int picked;
int finding(int val){
for(int i=0;i<n;i++){
if(vec[i]=val){
return i;
}
}
}
void pick(int val){
picked=val;
result+=20;
}
void func(int i){
int poz=finding(sorted[i]);
int v1=sorted[(i-1)%n];
int v2=sorted[(i+1)%n];
if(vec[(poz-1)%n]==v1 && vec[(poz+1)%n]==v2){return;}
if(vec[(poz-1)%n]!=sorted[(i-1)%n] && vec[(poz+1)%n]!=sorted[(i+1)%n]){
pick(vec[poz]);
for(int j=0;j<n;j++){
if(vec[j]==v1 && vec[(j+1)%n]==v2){
x=j;
}
}
int dist1=x-poz;
int dist2=n-x+poz;
if(dist1<dist2){result+=dist1;}
else{result+=dist2;}
aux=vec[x];
vec[x]=picked;
pick(aux);
func((x-1)%n);
}
}
int main()
{
cin>>n;
for(int i=0;i<n;i++){
cin>>vec[i];
sorted[i]=vec[i];
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(vec[i]>vec[j]){
aux=vec[i];
vec[i]=vec[j];
vec[j]=aux;
}
}
}
x=0;
for(int i=0;i<n;i++){
func(i);
}
cout<<result;
return 0;
}