Pagini recente » Cod sursa (job #1742878) | Cod sursa (job #1096801) | Cod sursa (job #2594211) | Cod sursa (job #711051) | Cod sursa (job #1690608)
#include <algorithm>
#include <cstdio>
#include <vector>
using namespace std;
typedef long long i64;
typedef pair<i64, int> DAT;
i64 f[20];
int q[20];
int main(void){
freopen("aperm.in","r",stdin);
freopen("aperm.out","w",stdout);
f[0]=1;
vector<DAT> v;
DAT tmp;
int n,p,t;
scanf("%d%d",&n,&p);
for(int i=1; i<=p; ++i)
f[i]=i*f[i-1];
for(int i=1; i<=n; ++i){
tmp.second=i;
tmp.first=0;
for(int j=0; j<p; ++j)
scanf("%d",&q[j]);
for(int j=0; j<p; ++j){
tmp.first+=f[p-j]*(q[j]-1);
for(int k=j+1; k<p; ++k)
if(q[k]>q[j])
--q[k];
}
v.push_back(tmp);
}
sort(v.begin(), v.end());
for(int i=0; i<v.size(); ++i)
printf("%d\n",v[i].second);
return 0;
}