Mostrando entradas con la etiqueta 612 - DNA Sorting. Mostrar todas las entradas
Mostrando entradas con la etiqueta 612 - DNA Sorting. Mostrar todas las entradas

lunes, 16 de enero de 2012

612 - DNA Sorting - UVA

#include<iostream>
#include<cstdio>
#include<vector>
#include<cstdlib>
#include<algorithm>
#include<utility>
using namespace std;
bool cmp(const pair<int, string>& a,const pair<int, string>& b) {
 return a.first < b.first;
}
int val(const string& a) {
 int len = a.size(), cont = 0;
 for (int i = 0; i < len; i++)
  for (int j = i + 1; j < len; j++)
   if(a[i] > a[j]) cont++;
 return cont;
}
int main() {
 /*freopen("in.in", "r", stdin);
 freopen("out.out", "w", stdin);*/
 string linea;
 int test, n, m;
 bool first = true;
 getline(cin, linea);
 test = atoi(linea.c_str());
 getline(cin, linea);
 while (test--) {
  getline(cin, linea);
  sscanf(linea.c_str(), "%d %d", &n, &m);
  vector<pair <int, string> > lista(m);
  for (int i = 0; i < m; i++) {
   getline(cin, linea);
   lista[i] = make_pair(val(linea), linea);
  }
  getline(cin, linea);
  stable_sort(lista.begin(), lista.end(), cmp);
  if(!first) printf("\n");
  first = false;
  for (int i = 0; i < m; i++) {
   printf("%s\n", lista[i].second.c_str());
  }
 }
 return 0;
}

lunes, 24 de octubre de 2011

612 - DNA Sorting, uva

// topcoder.cpp: define el punto de entrada de la aplicación de consola.
//
//#include "stdafx.h"
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<cstdlib>
#include<algorithm>
#include<utility>
#define db(a) cout << #a << " = " << a << endl;
using namespace std;
bool cmp(const pair<int, string>& a,const pair<int, string>& b) {
 return a.first < b.first;
}
int val(const char* a) {
 int len = strlen(a), cont = 0;
 for (int i = 0; i < len; i++)
  for (int j = i + 1; j < len; j++)
   if(a[i] > a[j]) cont++;
 return cont;
}
int main() {
 /*freopen("in.in", "r", stdin);
 freopen("ou.out", "w", stdout);*/
 char linea[1000];
 int test, n, m;
 bool first = true;
 gets(linea);
 test = atoi(linea);
 gets(linea);
 while (test--) {
  gets(linea);
  sscanf(linea, "%d %d", &n, &m);
  vector<pair <int, string> > lista(m);
  for (int i = 0; i < m; i++) {
   gets(linea);
   lista[i] = make_pair(val(linea), linea);
  }
  gets(linea);
  stable_sort(lista.begin(), lista.end(), cmp);
  if(!first) printf("\n");
  first = false;
  for (int i = 0; i < m; i++) {
   printf("%s\n", lista[i].second.c_str());
  }
 }
 return 0;
}