/*
#include<stdio.h>
int main ()
{
int n, arr[1001]={}, i, j, k;
scanf("%d", &n);
for(i=1 ; i<=n ; i++)
{
scanf("%d", &arr[i]);
}
for(i=1 ; i<=n ; i++)
{
for(j=i ; j<=n ; j++)
{
printf("%d ", arr[j]);
}
for(j=1 ; j<=i-1 ; j++)
{
printf("%d ", arr[j]);
}
printf("\n");
}
return 0;
}
메모이제이션 알고리즘
arr[i] : i번째 들어온 데이터 (x)
arr[i] : i에 대한 메모 (ex, i가 몇 번 불렸는지, i가 불린적 있으면1, 없으면 0)
*/
/*
#include<stdio.h>
int main ()
{
int arr[24]={}, i, j, a, n;
scanf("%d", &n);
for(i=1 ; i<=n ; i++)
{
scanf("%d", &a);
arr[a]++;
}
for(j=1 ; j<=23 ; j++)
{
printf("%d ", arr[j]);
}
return 0;
}
*/
/*
#include<stdio.h>
int main ()
{
int arr[10000001]= {}, n, m, a, i, j, b, c;
scanf("%d", &n);
for(i=1 ; i<=n ; i++)
{
scanf("%d", &a);
arr[a]++;
}
scanf("%d", &m);
for(j=1 ; j<=m ; j++)
{
scanf("%d", &b);
printf("%d ",arr[b]);
}
return 0;
}
*/
/*
#include<stdio.h>
int main ()
{
int arr[35]={}, i, n, a=0;
scanf("%d", &n);
for( ; ; )
{
arr[a]=n%2;
n=n/2;
if(n==0)
{
break;
}
a++;
}
for(i=a ; i>=0 ; i--)
{
printf("%d", arr[i]);
}
return 0;
}
*/