DNA2006: Desafio legal, mas mal planejado…

Você, que é aluno do ensino médio, não pode ficar de fora do maior evento virtual já organizado no Brasil.

Serão milhares de escolas inscrevendo seus representantes para participar do Desafio Nacional Acadêmico – DNA 2006.

O DNA 2006 será a maior Gincana de Conhecimento já realizada pela internet. Fundamentado na filosofia pedagógica WebQuest, o DNA é uma fantástica oportunidade para os participantes ampliarem seus conhecimentos, ao mesmo tempo em que desenvolvem a criatividade, a noção de liderança, o trabalho em equipe e a tomada de decisão. Para mais informações leia o Manual do Participante.

Somado a isso, os participantes poderão fazer novas amizades e conhecer alunos do Brasil inteiro. O DNA será um encontro marcado para um público estimado em milhares de jovens.

Pô… A idéia dos caras foi ótima. As perguntas foram super criativas e as equipes pesquisaram um monte, trocaram um monte de informações… O DNA apareceu em vários fóruns de discussão, comunidades do Orkut; nos mais diversos meios de comunicação na internet. Minha equipe se divertiu bastante, pesquisando exaustivamente durante cinco dias e duas noites viradas.

Entre vários desafios difíceis (de coisas que não se achava na internet ou que eram muito difíceis de serem encontradas – como por exemplo o nome da mãe de um marinheiro brasileiro pouco conhecido, que só aparece num PDF em francês pesquisando no Google), uns foram mais divertidos por causa do que tivemos que fazer para conseguir a resposta.

Como exemplo, vou citar um desafio que era traduzir um arquivo de áudio (MP3) com quatro palavras em russo. Primeiro tinha o trabalho de identificar a linguagem… Mas vinha uma imagem junto que era de um astronauta russo, então fomos direto pro caminho certo. Aí depois de ligar para a embaixada russa (e descobrir que ninguém lá fala português) e pra mais um monte de gente, adicionar 40 contatos russos no ICQ (usando as White Pages) e perguntar para vários russos que estavam ausentes ou não queriam ajudar (teve um que ficou me criticando porque eu estava falando inglês ao invés da minha língua materna – reflexos da Guerra Fria?), encontramos UM que falava inglês (bem mal, mas pelo menos falava). Aí depois de eu explicar 100 vezes pra ele o que tinha que fazer e ele me xingar de beach (dá pra ver que o cara não fala inglês, né?) e eu quase desistir dele, vieram as quatro palavras desse MP3 (infelizmente, esse áudio foi perdido com o tempo): peixe água açúcar cozinha. Aleluia!

Trecho da conversa cômica com o russo que nos ajudou no DNA

[…]
Russo: i fuck your Grandpa and she Scream ” YES !!! BABY !
Eu: cool… now, listen to the mp3 file…
Russo: i am Terminator
Eu: ok, me too
Russo: COOL
Eu: ok. now, please listen to the file.
Russo: i am Usama BenLaden
Eu: ok, cool. you can explode my house after you say me what the words mean
Russo: i sit not on the full internet (não entendi o que isso significa, mas acho que ele não conseguia baixar)
Eu: how can i send you? can you receive it by e-mail?
Russo: BEACH
Eu: are you in a beach? nice… what’s your e-mail address?

Agora a parte chata…

Já começava a desconfiar do evento quando percebi que o site deles era hospedado num servidor Microsoft/IIS, programado em ASP e só funcionava no Internet Explorer (hehehe, nenhum defensor dessa combinação mortífera precisa se sentir ofendido)… Pior ainda foi quando minha equipe começou o desafio e, além do congestionamento, nos deparamos com vários erros de programação, server e client-side.

A decepção final foi hoje, quando foi divulgado no site oficial que o final do evento será prorrogado. Pô, minha equipe pulou três questões por causa do tempo! Além disso, o “desafio final” (o último desafio, que promete ser muito difícil e vale mais pontos) vai ser nessa quinta-feira e eu vou estar viajando. Infelizmente, tornou-se impossível vencer.

O desafio foi muito legal e ano que vem sem dúvidas participarei de novo, mas a organização e o planejamento do evento foram péssimas; houve incompetência principalmente por parte dos programadores. Bom… Espero que ano que vem seja melhor… Aproveito pra agradecer para os amigos (em especial pro Reinaldo, que conseguiu a resposta de uma questão de biologia, na etapa surpresa, que iríamos demorar muito pra conseguir – se conseguíssemos…) e professores que nos ajudaram. E também um agradecimento especial para o nosso amigo russo. :)

Ah, no fim o russo perguntou pra quê queríamos saber o que as palavras significavam (eu já tinha falado umas três vezes que era um “virtual challenge”), então resolvi inventar um motivo fictício que ele pudesse entender: “O prêmio é uma viagem à Rússia.” Ele disse que vai nos mostrar a sua cidade quando formos lá e que vamos jogar Counter-strike! :D

[editado] Parece que consideraram nosso recurso, estamos com a pontuação máxima. Agora é só pesquisar pro desafio final! [/editado]

[editado de novo] Se for fácil como parece, acho que descobrimos a resposta do desafio final (sem nem ter a pergunta)! Agora é só digitar rápido na quinta-feira… :) [/editado de novo]

Mensageiros Instantâneos, OBM, Novos Programas, Música

Em primeiro lugar, venho por meio deste post comunicar que não uso mais MSN Messenger. O mensageiro instantâneo da Microsoft saiu da minha lista de contas do CenterICQ para a entrada de dois novos e melhores: IRC e GoogleTalk/Jabber. Cheguei a conclusão de que quem quer falar comigo deve usar o que eu uso e não ao contrário, por um motivo óbvio: o meu é melhor que o deles.

Esta decisão fez com que eu perdesse centenas de contatos, mas acho que foi a decisão certa a ser tomada. Quem quiser me contatar agora, pode me adicionar no ICQ como 147330555, GoogleTalk como tmadeira em gmail.com e no IRC/Freenode, como tiagomadeira.

O segundo ponto importante deste post é o anúncio da OBM, Segunda Fase. A prova acontecerá no sábado que vem, dia 03 de setembro. Acho difícil eu conseguir medalha nesse ano (Terceira Fase é difícil!), mas vou tentar me esforçar o máximo possível… Esta semana tivemos o treino para olimpíadas com o Vavá, aprendi algumas coisas úteis. E ontem conversei com o César Kawakami no ICQ que me deu umas dicas interessantes também sobre Teoria dos Números. Vou tentar aprender alguma coisa sobre isso nos próximos dias…

As aulas de matemática dessa semana foram pouco produtivas porque eu andei faltando algumas para a divulgação do fórum do colégio. Então, só deu pra fazer dois problemas: a implementação da Máxima Subcadeia Comum (LCS/Programação Dinâmica):

//LCS - Longest Common Subsequence
//Programação Dinâmica - MSC - Maior Subcadeia Comum

#include <stdio.h>
#define SMAX 1001
#define DIAGONAL 1
#define LADO 2
#define CIMA 3


//n = tamanho de x
//m = tamanho de y

int c[SMAX][SMAX], b[SMAX][SMAX], n, m;
char x[SMAX], y[SMAX];

int lcs_recupera(int i, int j) {
	if (i==0||j==0) {
		return 0;
	}
	if (b[i][j]==DIAGONAL) {
		lcs_recupera(i-1, j-1);
		printf("%c", x[i]);
	} else if (b[i][j]==CIMA) {
		lcs_recupera(i-1, j);
	} else {
		lcs_recupera(i, j-1);
	}
}

int main() {
	int i, j;


	printf("LCS - Longest Common Subsequence\nPor Tiago Madeira\n\n");
	printf("Digite o tamanho da string X: ");
	scanf("%d", &m);
	printf("Digite o tamanho da string Y: ");
	scanf("%d", &n);

	scanf("%*c");
	printf("Digite a string X: ");
	for (i=1; i<=m; i++) {
		scanf("%c", &x[i]);
		c[i][0]=0;
	}
	scanf("%*c");
	printf("Digite a string Y: ");
	for (i=1; i<=n; i++) {
		scanf("%c", &y[i]);
		c[0][i]=0;
	}

	printf("\nPrograma raciocinando...\n");
	for (i=1; i<=m; i++) {
		for (j=1; j<=n; j++) {
			if (x[i]==y[j]) {
				c[i][j]=c[i-1][j-1]+1;
				b[i][j]=DIAGONAL;
			} else {
				if (c[i][j-1]>c[i-1][j]) {
					c[i][j]=c[i][j-1];
					b[i][j]=LADO;
				} else {
					c[i][j]=c[i-1][j];
					b[i][j]=CIMA;
				}
			}
		}
	}

/*	printf("\nMATRIX C\n");
	for (i=1; i<=m; i++) {
		for (j=1; j<=n; j++) {
			printf("%d ", c[i][j]);
		}
		printf("\n");
	}

	printf("\nMATRIX B\n");
	for (i=1; i<=m; i++) {
		for (j=1; j<=n; j++) {
			printf("%d ", b[i][j]);
		}
		printf("\n");
	}
*/

	lcs_recupera(m, n);
	printf("\n");
}

e um programa bem ridículo para calcular os termos e a soma de uma PA (é o que o prof. tá ensinando, aí achei bom pra fazer os exercícios mais rápido…):

//Aplicar as fórmulas das PAs

//Progressão Aritmética
//Programa desenvolvido por Tiago Madeira (c) 2005.

#include <stdio.h>
#define MAX 1000001

long double a[MAX], s[MAX];

int main() {
	long double r;
	int n;

	printf("Primeiro termo da PA: ");
	scanf("%Lf", &a[1]);
	printf("Razão da PA: ");
	scanf("%Lf", &r);

	//Eu podia fazer só pros que vão ser usados, mas não sei porquê, deu vontade de fazer assim... =)
	printf("\nAguarde o problema raciocinar tudo que ele tem para raciocinar...\n");
	for (n=2; n<MAX; n++) {
		a[n]=a[1]+r*(n-1);
		s[n]=(a[1]+a[n])*n/2;
	}

	printf("\nE agora, digite números para o programa dizer A e S dele.\n");
	do {
		printf("Número: ");
		scanf("%d", &n);
		if (!n) {
			break;
		}
		printf("Número na posição N = %.Lf\nSoma de 1 a N = %.Lf\n\n", a[n], s[n]);
	} while (n);

}

No começo do mês que vem é o Festival de Música de Itajaí. Acho que vou fazer oficina de Piano Popular avançado com o Prof. Michel Freidenson, que foi quem me deu aulas numa oficina semelhante há dois anos. A semana da música vai contar também com uns shows bem legais e o site oficial é este aqui.

© 2005–2020 Tiago Madeira