#include <iostream>
using namespace std ;
int main ()
{
int n,m,sum,k;
while (cin >> n && n) {
cin >> m;
sum = n * 5 + 6 * m;
for (int i=1 ;i<n;i++) {
cin >> k;
sum += (m-k)>0 ?(m-k)*4 :(k-m)*6 ;
m = k;
}
cout << sum << endl ;
}
return 0 ;
}
#include <iostream>
using namespace std ;
int main ()
{
int k,n,m,y,p[10000 ],b[10000 ];
cin >> n;
for (k=1 ;k<=2 *n;k++)
{
p[k]=k;
printf ("%d " ,p[k]);
}
for (m=1 ;m<=20000 ;m++)
{
y=0 ;
for (k=1 ;k<=n;k++)
{
b[2 *k]=p[k];
b[2 *k-1 ]=p[k+n];
}
for (k=1 ;k<=2 *n;k++)
p[k]=b[k];
printf ("\n%d " ,m);
for (k=1 ;k<=2 *n;k++)
printf ("%d " ,p[k]);
for (k=1 ;k<=2 *n;k++)
if (p[k]!=k)
y=1 ;
if (y==0 )
{
printf ("\nm=%d\n" ,m);break ;
}
}
return 0 ;
}
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std ;
int main ()
{
int i,n,s;
long t;
cin >> n;
t = time(NULL )%1000 ;
srand(t);
for (t=0 ,i=1 ;i<=n;i++)
t=t+rand()%61 +20 ;
s=t/10 ;
printf ("%d \n" ,s);
return 0 ;
}
#include <iostream>
#include <string.h>
using namespace std ;
typedef struct node
{
char ch[1000 ];
int data;
int pri;
struct node *next ;
}node;
int main ()
{
char c[50 ];
node *head = NULL ;
while (scanf ("%s" ,c)!=EOF)
{
if (!strcmp (c,"GET" ))
{
if (head==NULL )
cout << "EMPTY QUEUE!" << endl ;
else
{
printf ("%s %d\n" ,head->ch,head->data);
node *n;
n = head;
head = head->next;
free (n);
}
}
else
{
node *t;
t = (node *)malloc (sizeof (node));
scanf ("%s%d%d" ,t->ch,&(t->data),&(t->pri));
t->next = NULL ;
if (head == NULL )
{
head = t;
}
else
{
node *tt;
tt = head;
while (tt->next!=NULL && tt->next->pri <= t->pri)
tt = tt->next;
if (head->pri>t->pri)
{
t->next=head;
head = t;
}
else
{
t->next=tt->next;
tt->next=t;
}
}
}
}
return 0 ;
}
#include <iostream>
#include <string.h>
using namespace std ;
int N,M,ans;
int L[200 ];
int R[200 ];
int num[200 ];
int main ()
{
int N,M,i,j;
while (scanf ("%d%d" ,&N,&M)!=EOF)
{
char ch;
for (i=1 ;i<=N;i++)
{
num[i]=0 ;
L[i]=R[i]=0 ;
for (j=1 ;j<=M;j++)
{
scanf (" %c" ,&ch);
if (ch == 'W' )
{
num[i]++;
if (L[i]==0 )
{
L[i]=j;
}
R[i] = j;
}
}
}
int start = 1 ;
int ans = 0 ;
int row = 0 ;
for (i=1 ;i<=N;i++)
{
if (num[i]!=0 )
{
row = i;
}
}
if (num[1 ]!=0 )
{
ans += (R[1 ]-start);
start = R[1 ];
}
for (i=2 ;i<=row;i++)
{
if (i%2 == 0 )
{
if (R[i]!=0 )
{
if (R[i]>start)
{
ans += R[i] - start;
ans += R[i] - L[i];
}
else
{
ans += start - L[i];
}
start = L[i];
}
}
else
{
if (R[i]!=0 )
{
if (L[i]>start)
{
ans += R[i] - start;
}
else
{
ans += start - L[i];
ans += R[i] - L[i];
}
start = L[i];
}
}
}
ans += row;
ans--;
cout << ans << endl ;
}
return 0 ;
}
#include <iostream>
#include <string.h>
using namespace std ;
int order[100 ];
char a[10 ],b[10 ];
int main ()
{
int n,i;
cin >> n;
while (n--){
int num;
memset (order,0 ,sizeof (order));
cin >> num;
for (i=0 ;i<num;i++)
{
scanf ("%s" ,a);
if (a[0 ]=='L' )
{
order[i]--;
}
if (a[0 ]=='R' )
{
order[i]++;
}
if (a[0 ]=='S' )
{
int f;
scanf ("%s" ,b);
scanf ("%d" ,&f);
order[i]=order[f-1 ];
}
}
int result = 0 ;
for (i=0 ;i<num;i++){
result += order[i];
}
cout << result << endl ;
}
return 0 ;
}