Mortalzera 0 Denunciar post Postado Agosto 15, 2008 Bom galera, eu perguntei se alguem sabia de um site que tinha desafios de programação, a Isis(java import.isis) me respondeu e me indicou um site dai fui la dar uma olhada e acabei gostando. Eles possuem correção on-line judge robot se bem que eu já fiz 2 problemas e estava certo os cara deram como errado, mas tudo bem o que vale mesmo é o treinamento; Aqui vai o site : www.programming-challenges.com os exercícios são encontrados no site em inglês, espanhol e alguns em português. Tem os exercícios no livro, num sei se eu posso passar link mas se eu puder eu edito e coloco de novo = ] Bom galera, gostaria que todos que se interessam por programar desse uma olhada e quem sabe a gente até fazia um desafio aqui no forum, seria legal pra movimentar a galera. Abraços aew galera. P.S. : tem que fazer cadastro no site. Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 15, 2008 Quais eram os problemas? Eles costumam ser chatos p/ correcao.No spoj tem os limites do codigo. Essas coisas valem mais como exercício sobre a API do que brain teaser de início. Perguntei ontem dos desafios pro quit.Nao tem mais pq o povo n se interessou.Falta de tempo eh um saco... Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Agosto 15, 2008 Não descartamos a possibilidade de fazer desafios nesse fórum. Seria bem interessante. Precisamos de pessoas interessadas. Compartilhar este post Link para o post Compartilhar em outros sites
Mortalzera 0 Denunciar post Postado Agosto 15, 2008 Quais eram os problemas? Eles costumam ser chatos p/ correcao.No spoj tem os limites do codigo. Essas coisas valem mais como exercício sobre a API do que brain teaser de início. Perguntei ontem dos desafios pro quit.Nao tem mais pq o povo n se interessou.Falta de tempo eh um saco... Então eles são meio chatos mesmo sabe aquele problema (3n + 1) intaum eu fiz esse e o da viagem "Trip"agora to vo tenta fazer mais alguns. Podiamos montar uma espécie de desafio no forum, tipo pega um exercício de la e da pra galera tenta faze aqui seria uma boua Compartilhar este post Link para o post Compartilhar em outros sites
Mortalzera 0 Denunciar post Postado Agosto 15, 2008 Então kandrade pq você num cria um tópico tipo assim inscrições ou até mesmo já joga o exercício lá, começa com os primeiros, que são um pouco mais fácil. Depois vai dificultando mais e mais. Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Agosto 15, 2008 Preciso conversar com o Quit para definir as regras antes de postar algum desafio. Se alguém estiver interessado em participar pode responder nesse tópico mesmo. Então kandrade pq você num cria um tópico tipo assim inscrições ou até mesmo já joga o exercício lá, começa com os primeiros, que são um pouco mais fácil. Depois vai dificultando mais e mais. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Agosto 15, 2008 entaum referente aos desafios galera, lógica q é legal, soh q igual os desafios de Linguagem C, em kd desafio tinha no maximo 3 participantes... e olha q naum foi pedido coisas num grau dificil, nem médio e sim facil! Se o pessoal c interessar com ctz terá novos desafios tanto na area de C/C++ como Lógica de Programação e Algoritmos! Oq podemos fazer é pendurar um tópico para ver oq o pessoal acha, se os usuarios se mostrarem ativos não havera problemas em iniciarmos um desafio! Sugestões seram bem vindas!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Mortalzera 0 Denunciar post Postado Agosto 15, 2008 Acho que o que pega mesmo é que a galera tem um certo receio de faze os exercícios achando que são impossíveis, eu vo começar a postar alguns exercícios aqui no forum junto com a resolução. LEMBRANDO QUE SÃO TRÊS LINGUAGENS : ANSI C C++ JAVA PASCAL Os exercícios poderão ser feitos nessas três linguagens. Compartilhar este post Link para o post Compartilhar em outros sites
Mortalzera 0 Denunciar post Postado Agosto 15, 2008 O primeiro problema seguem pdf : http://w14.easy-share.com/1701259793.html CORRIGIDO O LINK a solução minha é essa : CODE #include <stdio.h> int main(){ long int i,bigger,x,y,temp = 0; long int j[1000001]; scanf("%ld %ld", &x, &y); if ((x>0) && (y>0)){ for(i=0;i<1000001;i++){ //inicializa o vetor q conta os ciclos j=0; } for (i = x;i<=y+1;i++){ j= 1; temp = i; while(temp!=1){ //calcula o ciclo de cada numero e passa o valor pro vetor j if(temp%2==0) temp = temp/2; else temp = temp*3 +1; j++; } } bigger = j[x]; //define o maior ciclo como o primeiro depois percorre o vetor procurando o maior for(i=x+1;i<=y;i++){ if (bigger < j) bigger = j; } printf("%ld %ld %ld", x, y, bigger); } return 0; } Minha solução não funciona para o caso do intervalo ser I = [1...1000000] Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 15, 2008 Isso nao tem nada a ver com o pdf que você enviou. Compartilhar este post Link para o post Compartilhar em outros sites
Giovanni Ritchie 0 Denunciar post Postado Agosto 15, 2008 Acho que realizar um desafio seria bom aqui no forum... Poderiamos aprender bastante, era so escolhermos os capitulos em que os exercicios deviam se basear e ali comecar com as pessoas que tiverem interessadas.. Compartilhar este post Link para o post Compartilhar em outros sites
Mortalzera 0 Denunciar post Postado Agosto 17, 2008 Bom Isis eu ja corrigi o link, aguardo sua resposta. Mas esse problema não vai se nenhum problema pra você = ]. Vlw's Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 18, 2008 O do pdf que você mandou antes saiu assim: #include <iostream> #include <string> using namespace std; int linhas = 0,colunas = 0; void ler() { do { cout << "\nLinhas:"; cin >> linhas; } while(linhas < 0); do { cout << "\nColunas;"; cin >> colunas; } while (colunas < 0 || colunas > 99); } void lerTabuleiro(string mines[]) { for(int i=0;i<linhas;i++) { mines[i].reserve(colunas); cin >> mines[i]; } } void somarHorizontal(string mines[]) { int i,j; int pos; for(j=0;j<linhas;j++) { pos = 0; for(i=0;i<colunas;i++) { pos = mines[j].find('*',pos); if(pos > -1) { if (pos > 0 && mines[j].data()[pos-1] != '*') mines[j][pos-1] = (char)((int)mines[j][pos-1] + 1); if (pos < colunas-1 && mines[j].data()[pos+1] != '*') mines[j][pos+1] = (char)((int)mines[j][pos+1] +1); pos++; } } } } void somarVertical(string mines[]) { int i,j; int pos; for(i=0;i<colunas;i++) { j = 0; do { /* Encontra * nas linhas */ while (j < linhas && mines[j].data()[i] != '*') j++; if (j == linhas) break; if (j > 0 && mines[j-1].data()[i] != '*') mines[j-1][i] = (char)((int)mines[j-1][i] + 1); if (j < linhas - 1 && mines[j+1].data()[i] != '*') mines[j+1][i] = (char)((int)mines[j+1][i] + 1); j++; } while (j < linhas -1); } } void somarDiagonal(string mines[]) { int i,j; int Dl,Dc; for(i=0;i<linhas;i++) { for(j=0;j<colunas;j++) { if (mines[i].data()[j] != '*') { if (i == 0 || i < linhas-1) { if (j-1 >=0 && mines[i+1].data()[j-1] == '*') mines[i][j] = (char)((int)mines[i][j]+1); if (j+1 < colunas && mines[i+1].data()[j+1] == '*') mines[i][j] = (char)((int)mines[i][j] +1); } if (i > 0 && i < linhas) { if (j-1 >= 0 && mines[i-1].data()[j-1] == '*') mines[i][j] = (char)((int)mines[i][j] + 1); if (j+1 < colunas && mines[i-1].data()[j+1] == '*') mines[i][j] = (char)((int)mines[i][j] + 1); } } } } } void converter(string mines[]) { int pos = 0; int i,j; for(i=0;i<linhas;i++) { for(j=0;j<colunas;j++) { pos = mines[i].find('.'); if (pos > -1) mines[i].replace(pos++,1,1,'0'); } } somarHorizontal(mines); somarVertical(mines); somarDiagonal(mines); } int main() { while(true) { ler(); if (linhas == 0 || colunas == 0) break; string mines[linhas]; lerTabuleiro(mines); converter(mines); cout << "\n\n\n"; for(int i=0;i<linhas;i++) cout << mines[i] << endl; } } Minha solução não funciona para o caso do intervalo ser I = [1...1000000] Se funcionasse estaria errado: the input will consist of a series of pairs of integers i and j,one pair per line. All integers will be less than 1000000 and greater than 0. #include <iostream> #include <vector> using namespace std; void geraSeq(int N,vector<int> &T) { if (N > 1){ if (N%2) { T.push_back(N*3+1); geraSeq(N*3+1,T); } else { T.push_back(N/2); geraSeq(N/2,T); } } } int main() { int inicio,final; cin >> inicio >> final; if (inicio < 0 || inicio >= 1000000 || final < 0 || final >= 1000000) return (1); int maxcicleLength = 1; vector<int> T; cout << inicio << " " << final << " "; for(;inicio<=final;inicio++) { T.clear(); T.push_back(inicio); geraSeq(inicio,T); if (T.size() > maxcicleLength) maxcicleLength = T.size(); } cout << maxcicleLength << endl; } Compartilhar este post Link para o post Compartilhar em outros sites
Mortalzera 0 Denunciar post Postado Agosto 18, 2008 Então esse do minesweeper achei meio chato de faze = [, entaum nem tentei = ], mas vo subimter o do 3n +1. vlw's vo manda mais uns pra galera fazer = ] Compartilhar este post Link para o post Compartilhar em outros sites
Mortalzera 0 Denunciar post Postado Agosto 18, 2008 Isis deu erro de compilação : CODE code.c:1:20: error: iostream: No such file or directory code.c:2:18: error: vector: No such file or directory code.c:3: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'namespace' code.c:5: error: expected declaration specifiers or '...' before 'vector' code.c: In function 'geraSeq': code.c:8: error: 'T' undeclared (first use in this function) code.c:8: error: (Each undeclared identifier is reported only once code.c:8: error: for each function it appears in.) code.c:9: error: too many arguments to function 'geraSeq' code.c:12: error: too many arguments to function 'geraSeq' code.c: In function 'main': code.c:20: error: 'cin' undeclared (first use in this function) code.c:25: error: 'vector' undeclared (first use in this function) code.c:25: error: expected expression before 'int' code.c:26: error: 'cout' undeclared (first use in this function) code.c:29: error: 'T' undeclared (first use in this function) code.c:31: error: too many arguments to function 'geraSeq' code.c:35: error: 'endl' undeclared (first use in this function) Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 18, 2008 Deu erro pq provavelmente você está compilando um codigo em C++ com um compilador de C... Compartilhar este post Link para o post Compartilhar em outros sites
Mortalzera 0 Denunciar post Postado Agosto 19, 2008 Deu erro pq provavelmente você está compilando um codigo em C++ com um compilador de C...Pronto mudei o compilador, só que agora ta dando " wrong answer" Eles são meio chatos pra correção mesmo. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Agosto 19, 2008 bom galera, c surgir msm o interesse, podemos montar um sub-forum de desafios de programação ow até msm um "grupo de estudos" ow seja uma galerinha pra tentar resolver os exercicios, é legal pensar em equipe, se a maioria aprovar conversarei com o Kandrade sobre isso e tentaremos implementar o sub-forum. Aiiii c alguem quizesse se tornar mod. desse sub-forum e se dedicasse realmente seria legal.! Aguardo respostas ;D! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 19, 2008 Se eles esperam uma forma determinada de programa,podem esperar sentados. Aqui na faculdade acontece direto. Compartilhar este post Link para o post Compartilhar em outros sites
Mortalzera 0 Denunciar post Postado Agosto 19, 2008 Intão Isis eu concordo com você esses kra são meio lokos, mas o que tem que ser feito é um while tipo while(scanf(" %ld %ld", &x, &y) != EOF){ .... } dai você pode usar o comando vamo supor que você queira a entrada 10 99 25 515 100 200 900 1000 e a saída respectiva, você cria um arquivo no linux de texto que contenha a entrada e quando for rodar você usa o arquivo como entrada tipo ./programa.c < nomedoarquivocomoentrada dai a entrada acima vai ser posta no programa. ele vai retornar igualzinho a saída imposta pelo desafio. Intão Quit vamo lá cara, apesar de eu achar que os desafios serão para poucos, devido a dificuldade de fazê-los. É preciso conhecer bastante coisa de C/C++. Mas a idéia so por si mesma já é mto interessante, pq ficar respondendo esses tópicos tipo : " Como mudar de variável", "Ordenar vetor em portugol" É meio tenso, desanima a galera que ta um poco pra frente. Não querendo desdenhar de ninguem, mas um problema do programming-challenges é uma coisa mais sofisticada. Compartilhar este post Link para o post Compartilhar em outros sites