//정렬
//오름차순 , 내림차순
//5 1 4 2 3
//1 2 3 4 5
//5 4 3 2 1
//구현 쉽, 시간 느림 : 버블, 선택, 삽입
//구현 어려워, 시간 빨라 : 퀵, 힙, 머지, 기수, ....
/*
선택정렬
#include <stdio.h>
int a[10001];
int n, i, j, temp, min;
int main() {
scanf("%d", &n);
for (i = 1; i <= n; i++)
scanf("%d", &a[i]);
for (i=1; i<n; i++) {
min=i;
for (j=i+1; j<=n; j++) {
if(a[j]>a[min]){
min=j;
}
}
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
for (i=1; i<=n; i++)
printf("%d\n", a[i]);
return 0;
}
버블정렬
#include <stdio.h>
int a[10001];
int n, i, j, temp;
int main()
{
scanf("%d", &n);
for (i=1; i<=n; i++)
scanf("%d", &a[i]);
for(i=1; i<n; i++)
{
for(j=1; j<=n-i; j++)
{
if (a[j] < a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (i = 1; i <= n; i++)
printf("%d\n", a[i]);
return 0;
}
*/
/*
*/
/*
#include <stdio.h>
int a[10001];
int n,i,j,temp,c=0,c2=0;
int main()
{
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=1;i<n;i++)
{
c=0;
for(j=1;j<=n-i;j++)
{
if (a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
c++;
}
}
if(c==0)
{
break;
}
}
printf("%d",i-1);
return 0;
}
*/
/*
#include <stdio.h>
int a[8];
int i, j, temp;
int main()
{
for (i=1; i<=7; i++)
scanf("%d", &a[i]);
for(i=1; i<7; i++)
{
for(j=1; j<=7-i; j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
printf("%d\n%d", a[7],a[6]);
return 0;
}
*/
//구조체 struct : 지후가 만드는 자료형!!
/*
typedef struct
{
char name[50];
int num;
double grade;
}student;
#include <stdio.h>
int main()
{
student arr[100];
student a;
a.grade=3.5;
a.num=50;
scanf("%s %d %lf",a.name,&a.num,&a.grade);
//arr[i].grade
}
*/
#include <stdio.h>
typedef struct
{
int w;
int num;
}re;
int main()
{
re arr[201];
int i,n,b,j,c=1;
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&arr[i].w);
}
for(i=1;i<=n;i++){
c=1;
for(j=1;j<=n;j++)
{
if(arr[i].w<arr[j].w)
{
c++;
}
}
arr[i].num=c;
printf("%d %d\n",arr[i].w,arr[i].num);
}
}



