• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pcaldeira

2009 TopCoder High School Tournament

40 mensagens neste tópico

In its third year, the TCHS is bound to bring new, young names and faces to the tournament. It is time to compete against your comrades and reveal the new champion! Here is your chance to be a part of the $10,000 prize purse! In order to compete, all you have to do is be registered for Season 3. Be sure to read the eligibility requirements and rules. For more information, check out the website.

http://www.topcoder.com/tchs09

Há muito poucas possibilidades, mas aqui no p@p há vários concorrentes que podem passar uma ou duas rondas... E para os que acham que não conseguem passar, há prémio de participação (possivelmente uma tshirt):

Up to 500 competitors who compete in Online Round 1 - Participatory prize which will be sent after the completion of the Tournament.

Aqui está a vossa oportunidade de ganhar uma tshirt do TopCoder ou, com MUITA sorte, uma viagem aos EUA. :D

EDIT: não há viagem nenhuma, a final é online :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Epá, era muito muito bom passar pelo menos duas rondas! Vamos lá ver se o pcaldeira consegue chegar aos 100 melhores e eu aos 250 (pelo menos 500 :cheesygrin:)...

Quem mais participa?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu talvez participe também... Já tinha visto o e-mail, mas é só para Janeiro. O modo de participação é como as SRMs?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu talvez participe também... Já tinha visto o e-mail, mas é só para Janeiro. O modo de participação é como as SRMs?

Yup! :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Epá, era muito muito bom passar pelo menos duas rondas! Vamos lá ver se o pcaldeira consegue chegar aos 100 melhores e eu aos 250 (pelo menos 500 :cheesygrin:)...

Quem mais participa?

Não contes com isso. Chegar aos 250 melhores não é impossível (basta veres o torneio do ano passado... o número de participantes não chegou a 200, acho), agora chegar aos 100 melhores, também não digo impossível, mas é quase... além dos problemas serem mais difíceis que nos TCHS matches normais, ficar entre os 100 primeiros dos 250 melhores não é o mesmo que ficar nos 100 primeiros num match normal (em que, para já, há muito menos concorrentes).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vocês precipitaram-se um pouco:

Online Championship Round  Saturday, January 24, 2009

Devido à falta de patrocinios (têm falado muito na crise económica), não há onsites este ano. Por isso é que há tantos concorrentes na final.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ah, por isso é que tantos vão à final. Ainda assim, boa oportunidade para tentar passar algumas rondas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se não tivessem voltado a falar nisto provavelmente não me ia lembrar :S

Anyway, amanhã passam os 500 primeiros e só há 399 inscritos inscritos na época HS, portanto relaxem, basta não ter 0 para passar :) Cuidado (e lembrar isto serve para mim também, que já perdi montes de pontos assim) com os pormenores, leiam bem os problemas, valores máximos das variáveis (para evitar overflows), limites de stack (já agora, qual é o limite no topcoder? e limite de memória dita "normal"?)...

Bem, boa sorte para todos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu tive a procurar mas não encontrei os limites nas regras ou faqs do topcoder. Contudo, tenho quase a certeza que quando me registei li algures que o limite são 64mb de memória. Tive a ver nos foruns e o limite da stack é o valor por defeito. Para C++ disseram lá que deve ser 8mb.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:P :P :thumbsup: Great News! :D:):D

Os três portugueses que participaram e que por instância são membros do fórum: Tharis, pcaldeira, JD557 passaram à próxima ronda! :)

Eu fiquei com 1194.9 pontos (resolvi os 3)! :D

O pcaldeira ficou com 436.2 (resolveu os 2 primeiros)! :D

O JD557 ficou com 122.49 (resolveu o primeiro)! :D

Awesome para mim!

Os problemas eram Muito Fáceis!

O de 250 era fazer 3 linhas de divisões e subtracções e um min(ret,1.) no return e tava feito.

O de 500 foi onde eu e o pcaldeira perdemos muito tempo. Continuamos a dizer que trabalhar com strings em C++ é o pior que pode haver.

O de 1000 era fácil e diverti-me a resolvê-lo. O pcaldeira esteve a 5 segundos de o submeter (substituir maze[ x ][ y ] por maze[currentrow][currentcol])

Que posso eu dizer? Foi a minha melhor prestação de sempre no TopCoder! :D

EDIT

Mesmo tendo resolvido os 3, fiquei em 151º. e o rating só aumentou 132 pontos. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boa :P Parabéns ! :P

Quase 200 concorrentes fizeram os 3 problemas. Não é muito normal :)  Força para a próxima ronda. É para a semana?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boa :P Parabéns ! :thumbsup:

Quase 200 concorrentes fizeram os 3 problemas. Não é muito normal :P  Força para a próxima ronda. É para a semana?

Thank you! :D

Sim, é no próximo sábado, dia 10 às mesmas horas. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tive a resolver os problemas agora no practice. Inicialmente não estava a perceber bem o 250, mas a explicação do sample input 1 já dizia praticamente o que era preciso fazer  :P

No 500 era quem vos batesse!!!  :knuppel2:

Têm de aprender a usar a biblioteca stringstream ( e já agora inputstringstream e outputstringstream ). Basicamente funcionam como cin's e cout's mas sobre strings.

Com isto fiz o problema com 481 pontos :)

#include <sstream> // stringstream
double expectedProfit(vector <string> v, vector <string> c) {
	map<string,double> p;
	string x ;
	for (int i = 0 ; i < (int) c.size(); i++) {
		stringstream ss( c[i] );
		double pp;
		ss >> x >> pp;
		p[x] = pp / 100.0;
	}
	double res = 0.0;
	for (int i = 0 ; i < (int)v.size() ; i++) {
		stringstream ss( v[i] );
		int am , in ;
		ss >> am >> in >> x;
		res -= am;
		res += (am+in) * (1-p[x]);
	}
	return res;
}

O topcoder é fixe para melhorarmos as nossas coding skills. Já agora no 1000 fica mais simples usar:

// Sul , Oeste , Norte , Este 
int dx[] = { 0 , -1 , 0 , 1 };
int dy[] = { 1 , 0 , -1 , 0 };
int dir = 0;
...

if ( moves[k] == 'F' ) {
i += dy[dir];
j += dx[dir];
// ...
}
else if ( moves[k] == 'R')
dir = (dir +1)%4;
else
dir = (dir-1+4) % 4;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@mogers,

epá, essas libs facilitam o trabalho todo. A ver se nos próximos probs que metam strings ao barulho a ver se as uso. :):thumbsup:

Quanto à cena do 1000, ya, isso é mais fácil, mas eu já tinha começado a implementar o outro qd me deu essa ideia, por isso, era melhor continuar como eu tava. :P :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No 500 era quem vos batesse!!!  :knuppel2:

Têm de aprender a usar a biblioteca stringstream ( e já agora inputstringstream e outputstringstream ). Basicamente funcionam como cin's e cout's mas sobre strings.

Pois, perdi bastante tempo com isso. Passei tudo para cstrings e usei o sscanf, e pelo meio ainda tive de ir ver documentação (como passar strings de c++ para strings c, afinal é só string.c_str()), e com isto fiquei com poucos pontos no de 500. Já o primeiro li só o problema e os limites, depois fiquei um bocado a pensar como ia fazer, e só depois de já o ter feito é que vi o input exemplo, que dizia tudo :\ E com um problemset assim tão fácil, não resolver todos foi um bocado mau, acabei por descer o rating HS novamente.

De qualquer forma, passámos todos, foi bom e ainda vou aprender alguma coisa com esta prova (stringstreams? :)). E btw, na próxima eliminatória já devem aparecer problemas mais difíceis, acho que ninguém quer que cheguem à final os coders mais rápidos em vez dos melhores (apesar de normalmente os mais rápidos serem os melhores - o top5 desta prova é "o costume" :P).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Os resultados finais já saíram, e já recebi um mail a dizer que o prémio de participação é uma tshirt :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acabou agora a TCHS Online Round 2 e os únicos 3 portugueses e membros do P@P: pcaldeira, JD557 e eu passámos! :D

Foi uma má prova para os 3 porque só fizémos o de 250 pontos e com más pontuações.

Sobre a minha participação:

- 250: não tinha percebido logo logo logo o que era para fazer e tinha um bug em que estava a comparar duas strings e era para comparar uma dessas com outra.

- 600: horrível!

- 900: Acho que é DP ou coisa parecida e nem pensei no assunto...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boa! Parabéns :D

Acho que vos tá a faltar prática a implementar as soluções para serem mais rápidos. Vão para o practice room fazer srms :D (tenho feito isso nos últimos dias :x )

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Li agora os problemas, vocês não fizeram um parecido com o de 1000 no estágio?

Eu fiz no meu estágio, qualquer coisa sobre o melhor ponto para a reunião das pessoas que moram numa rua.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu fiz no meu estágio, qualquer coisa sobre o melhor ponto para a reunião das pessoas que moram numa rua.

Sim sim... O pcaldeira já viu que era com a mediana. :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O problema foi que durante o concurso nem cheguei a ler, a partir de agora 15 mins a avançar pouco num problema = ir ao próximo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu quando tenho um 600 e 900, leio sempre o 900 primeiro porque não me lembro de ter conseguido fazer algum 600 de div1 durante a prova (também não fiz nenhum 900, mas tive a 2 caracteres de conseguir um :D ).

Uma hipotese na próxima ronda é verem 250, 1000 , 500. No caso do 1000 ser impossivel de fazer, descartam-no logo. O problema é que muitas vezes subestimamos os problemas e pode-se achar que até nem é complicado e perde-se bastante tempo :\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora