#include <bits/stdc++.h>
using namespace std;
const int Maxn=10005;
int n, b[Maxn];
inline void mergesort(int *a,int l,int r) {
if(l==r) return;
int mid =l+r>>1;
mergesort(a,1,mid), mergesort(a,mid+1,r);
int i=l,j=mid+1,cnt=0;
while (i<=mid && j<=r) {
if(a[i]<=a[j]) b[++cnt]=a[i++];
else b[++cnt] =a[j++];
}
while(i<=mid) b[++cnt] =a[i++];
while(j<=r) b[++cnt]=a[j++];
for (i=l; i<=r; i++) a[i]=b[i-l+1];
}
int a[Maxn];
int main(void) {
cin>>n;
for (int i=1; i<=n; i++)cin >>a[i];
mergesort(a, 1,n);
for (int i=1; i<=n; i++) cout<<a[i]<<(i==n?'\n':' ');
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int i,j,k,n,m,f[10010],p1,p2,p3;
int find(int k) {
if(f[k]==k)return k;
return f[k]=find(f[k]);
}
int main()
{
cin>>n>>m;
for (i=1; i<=n; i++) f[i]=i;
for (i=1; i<=m; i++) {
cin>>p1>>p2>>p3;
if(p1==1)
f[find(p2)]= find(p3);
if(p1==2)
if(find(p2)==find(p3))
printf("Y\n");
else
printf("N\n");
}
return 0;
}
int t,x[100],a[100];
void work(int d,int i,int n) {
int k;
if(n==1)
{
for(k=0; k<d; k++)
printf("%3d" ,a[k]);
printf("\n");
}
else
for(k=i; k<t; k++)
if(n%x[k]==0)
{
a[d]=x[k];
work(d+ 1,k,n/x[k]);
}
}
int main() {
int i,k,n;
cin>>n;
for(i=n; i>1; i--) if(n%i==0) x[t++]=i;
work(0,0,n);
}
#include <iostream>
using namespace std;
const int SIZE = 100;
int x[SIZE],y[SIZE],f[SIZE];
int n,i,j,max f ,ans;
int main()
{
cin>> n;
for(i=1; i<=n; i++) cin>>x[i]>>y[i];
max_f=0;
for(i=1; i<=n; i++)
{
f[i]= ___(1)___;
for(j=1; j<=n; j++)
{
if(x[j]<x[i]&& ___(2)___)
___(3)___;
}
if (___(4)___)
{
max_f=f[i];
___(5)___;
}
}
for (i=1; i<=n; i++) cout<<f[i]<<endl;
cout<<ans<<endl;
return 0;
}
#include <iostream
#include <cstring>
using namespace std;
const int SIZE=25;
bool used[SIZE];
int data[SIZE];
int n,m,i,j,k;
bool flag;
int main()
{
cin>> n>> m;
memset(used,false, sizeof(used));
for(i=1; i<=m; i++)
{
data[i]=i;
used[i]=true;
}
flag= true;
while(flag)
{
for(i=1; i<=m-1; i++)
cout<< data[i]<<" ";
cout<<data[m]<<endl;
flag= ___(1)___ ;
for(i=m; i>=1; i--)
{
___(2)___ ;
for(j=data[i]+1; j<=n; j++)
if(!used[j])
{
used[j]= true;
data[i]= ___(3)___ ;
flag= true;
break;
}
if(flag)
{
for(k=i+1; k<=m; k++)
for(j=1; j<= ___(4)___; j++)
if(!used[i])
{
data[k]=j;
used[j]=true;
break;
}
___(5)___;
}
}
}
return 0;
}