Primeira fase das Olimpíadas de Matemática

Ocorreu hoje a tarde a prova da primeira fase da Olimpíada Brasileira de Matemática (e da Regional/catarinense também, a primeira fase é igual). A prova tava difícil, ao menos pros padrões daqui… :) Acertei 16 de 25 questões, segundo gabarito extra-oficial, três delas foram chutes! Mas tá bom, creio que isso classifique pra segunda fase sem problemas.

“Nem tão livre assim”

Sérgio Amadeu da Silveira

A Istoé publicou uma matéria sobre a saída de Sérgio Amadeu do ITI, com o nome “Nem tão livre assim”.

A notícia me deixou bastante triste e chocado com a crise no governo estar atingindo até uma coisa tão benéfica e interessante como é o software livre. Ver um cara como o Sérgio Amadeu saindo do governo é decepcionante depois de ver tantos projetos interessantes que ele coordenou e participou. Mas espero que os próximos em sua função no governo continuem com esses projetos e sempre inovando e criando novas idéias para o software livre no Brasil. O motivo da sua saída ele explica na seguinte frase de sua entrevista: “É bonito apoiar telecentro, computador barato para pobre, mas na hora de enfrentar interesses a favor do software livre, falta apoio, falta cara na reta.”

Para quem não conhece Sérgio Amadeu da Silveira, aproveito para citar um trecho de um texto dele de cerca de um ano atrás quando foi processado pela Microsoft por ter dito que a doação de software para governos é uma prática como a de traficantes: “[…] Gostaria de registrar que a contratação de software preservando os valores liberdade e abertura é, para o Governo Brasileiro, uma questão ligada de forma indissolúvel ao princípio democrático. E porque se percorreu um longo e doloroso caminho para chegar ao estágio atual de desenvolvimento da democracia neste país, não arrefeceremos em nossa luta. Se democracia é um valor repleto de ideologia, não é jamais um valor insignificante. Se democracia é um sonho, é um sonho do qual este País jamais acordará novamente. O futuro é livre.”


Estou participando do Festival de Música de Itajaí e também do projeto Banho de Cidadania do Colégio. Por isso, meu projeto de Software Livre está parado e não ando mais desenvolvendo nada. Fui muito mal na OBM nesse final de semana (também, eu não esperava ir bem e por isso nem me esforcei muito, ainda saí cedo porque tinha oficina de piano), mas isso não importa. Nesse ano, eu já esperava não ganhar nada na OBM. Fiz uma questão, mas pelo menos acertei ela… Agora tenho que me preparar para a ORM, que por ser só de Santa Catarina é bem mais fácil, e aí eu quero pegar uma medalha… ;)

Hoje meu grupo de choro tocou na Hora da Sineta. O show não foi muito bom, mas tudo bem… :D Também toquei na Sessão Cívica; essa apresentação foi um pouco melhor… Minhas aulas com o Michel Freidenson estão bem legais, embora ele esteja repetindo algumas coisas que eu já sei. Paralelamente, estou pegando o arranjo do Leandro Braga da música Naquele Tempo. É um choro bem legal do Pixinguinha e Benedito Lacerda, que no CD dele ficou bem interessante… Aliás, mandei um e-mail para ele pra ver se ele não escreveu a partitura.

Depois de amanhã vai sair o primeiro beta do Firefox 1.5! :P

PS1: Agora eu estou sabendo de “todas as notícias” porque tô finalmente usando os feeds dos sites de notícias do mundo, de informática e até as notícias do São Paulo! E, olha… Vale a pena usar esses feeds XML… Facilitam bastante a vida!

PS2: Coloquei ali nos botões ao lado direito um botão do Opera. Cada vez que alguém clica eu ganho um ponto e juntando 250 pontos, eu ganho o registro dele… Bom… Eu não uso Opera, a não ser para testar os sites que eu faço, mas sempre quis vez um Opera registrado pra ver se ele é bom sem aquelas ads feias! Então, quem quiser colaborar que fique a vontade! Hehehe…

Feed RSS, Google e OBM

Finalmente implementei o feed RSS que estava faltando na minha página… O Gustavo Custódio, do Colégio, me lembrou de criá-lo e fiz isso agora a noite mesmo…

Segui o padrão do Bruno Torres, porque não tenho muita experiência com feeds XML/RSS e criei até um XSL para não ficar só o feed mesmo, mas ter um “estilo associado a ele”, como diz o Mozilla.

Hmmm… Então agora vocês já podem ver o conteúdo do site via os feeds (o que facilita bastante)… E aproveitem para se encontrarem algum erro (eu fiz na pressa) me avisarem. :)

Hoje coloquei também em minha página o programa Google Adsense. Coloquei um pequeno banner (de 468×60) localizado embaixo do primeiro post da página e outro no rodapé da página e acho que não poluiu e aliás, as cores ficaram discretas e bonitas. :D (hehehe, sou o primeiro cara que diz que gosta de ads no mundo!).

E por falar em Google, nessa semana testei vários serviços deles. Começou com o GoogleTalk e depois que meu irmão colocou rótulo pra “todos” os lugares do mundo no GoogleEarth acabamos realmente nos viciando em Google. Mas os serviços deles são ótimos!

Boatos dizem que o Google vai dominar o mundo e o Pink e o Cérebro trabalham lá. Não sei se é verdade, mas cada vez mais acho que isso realmente faria sentido! Hehehe…

Sábado é a segunda fase da OBM (Olimpíada Brasileira de Matemática) e também começa o Festival de Música de Itajaí. Na Olimpíada, acho que não tenho muita chance e, aliás, nessa semana também andei estudando um pouco (com o César Kawakami inclusive, que me passou umas coisas bem legais sobre Teoria dos Números). No festival, me inscrevi para fazer piano mesmo com o Michel Friedenson.

Depois da semana do festival de música, quero voltar a programar logicamente. Essa semana só tentei fazer coisas em GTK, mas sem muito sucesso (aprendi um pouco de C/GTK, mas depois resolvi PHP/GTK porque PHP é uma linguagem mais completa, mas ainda não decidi nada)…

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