Alguns algoritmos da Regional da Maratona da ACM 2007

Nesse ano de estréia resolvemos apenas dois algoritmos simples utilizando-se da linguagem C++, esperamos que nos próximos anos consigamos melhores resultados.

O primeiro problema resolvido foi o “Histórico de Comandos”, que consistia em dizer quantas vezes o usuário precisa teclar a tecla “seta para cima” em cada entrada. Abaixo o algoritmo:

#include <iostream>
using namespace std;
int n=0,y=0;
int vet[1000000];
int esta(int num){
	for(int j=(y-1);j>-1;j--)
		if(vet[j]==num)
			return (y-j);
	return (-1);
}
int main() {
	while((cin >> n)and(n!=0)){
		int soma=0,a=0,b=0;
		y=0;
		for(int i=0;i<n;i++)
			vet[i]=0;
		for(int i=0;i<n;i++){
			cin >> a ;
			b = esta(a);
			if(b>-1)
				soma+=b;
			else
				soma+=a+y;
			vet[y]=a;
			y++;
		}
		cout << soma << endl;
	}
	return 0;
}

O segundo algoritmo foi o “Jogo das Varetas”, em que deve-se descobrir o número de retângulos que podem ser formados com as varetas existentes. Abaixo o algoritmo:

#include <iostream>
using namespace std;
int main() {
	int n=0;
	while((cin >> n)and(n!=0)){
		int soma=0,a=0,b=0;
		for(int i=0;i<n;i++){
			cin >> b >> a;
			soma += a/2;
		}
		soma = soma/2;
		cout << soma << endl;
	}
	return 0;
}
Compartilhe:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • FriendFeed
  • LinkedIn
  • Live
  • MySpace
  • PDF
  • Rec6
  • Reddit
  • RSS
  • Slashdot
  • StumbleUpon
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Identi.ca
  • Netvibes
  • Tumblr
  • blogmarks
  • Posterous
  • Yahoo! Buzz

Posts relacionados:

  1. Algoritmo: Ajudando a prefeitura
  2. Algoritmo: Números de Ka Fu
  3. Algoritmo: O imperador Lu Zhin Du
  4. Métodos de Gauss-Seidel e Gauss-Jacobi
  5. Algoritmo: Os tesouros de Shaou Lee

Tags: ,

This entry was posted on domingo, setembro 23rd, 2007 at 22:29 and is filed under algoritmos, eventos. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

Comments are closed.