segunda-feira, 28 de junho de 2010

Olá Pessoal!
Vou postar mais um probleminha. Estes problemas são bons pra quem tá iniciando, como eu!!kkk

Anões

Todos os dias, enquanto os anões estão ocupados nas minas, Branca de Neve prepara o jantar eles: sete cadeiras, sete pratos, sete garfos e sete facas para sete anões famintos. Um dia, em vez de sete, nove anões voltaram das minas (ninguém sabe como ou por quê). Cada um deles afirma ser um dos sete anões da Branca de Neve. Felizmente, cada anão usa uma touca com um número inteiro positivo menor que 100 escrito nela. Branca de Neve, uma matemática famosa, já havia observado, há muito tempo, que a soma dos números nas toucas de seus sete anões era exatamente 100. Escreva um programa que determina quais anões são legítimos, ou seja, escolhe sete dos nove números que totalizem 100.

Entrada:
A entrada conterá um inteiro T, o número de casos de testes, e para cada caso de teste, nove linhas de entrada. Cada uma com um inteiro entre 1 e 99 (inclusive). Todos os números serão distintos.

Saída: A saída deve conter, para cada caso de teste, exatamente 7 linhas. Cada uma com um dos números nas toucas dos anões de Branca de Neve (em ordem crescente).

Exemplo:

Entrada
2
7
8
10
13
15
19
20
23
25
8
6
5
1
37
30
28
22
36

Saída:
7
8
10
13
19
20
23
1
5
6
8
22
28
30

Solução: A solução é muito simples, primeiro deve-se ordenar os números de cada teste, que correspondem aos números dos anões. Depois somam-se todos estes números. Começando do primeiro e do segundo, você deve subtrair estes dois números, se o resultado der igual a 100, pronto, você deve imprimir todos os números menos estes dois que você subtraiu. Se não for você deve continuar com a subtração do segundo e o terceiro, e assim por diante.
Olá! Já que eu aprendi a usar o SyntaxHighlighter, vou publicar um problema visto na aula da TAP. A seguir a descrição dele:

Cartas
João pegou um baralho com um certa quantidade de cartas numeradas e, depois de algum esforço, conseguiu colocá-las em ordem numérica, da menor para a maior. Agora, ele quer organizá-las em colunas e, por razões estéticas, quer as colunas ordenadas em ordem não crescente de comprimentos, os quais devem ser aproximadamente iguais ou seja, o comprimento de duas colunas não podem diferir por mais de uma carta. Além disso, ele quer distribuir as cartas sequencialmente por colunas, ou seja, ele quer distribuir todas as cartas da primeira coluna, depois todas as cartas de segunda coluna e assim por diante. Escreva um programa que execute esta tarefa.

Entrada:

A entrada conterá um inteiro T, o número de casos de testes e, para cada caso de teste, uma linha com os inteiros N (1 <= N <= 1000), a quantidade de cartas, e M (1 <= M <=100), a quantidade de colunas. As cartas são numeradas de 1 a N. Não há duas cartas com o mesmo número. Saída:

A saída deve conter, para cada caso de teste, uma linha com as quantidades das cartas em cada coluna e na sequência, a distribuição das cartas.

Exemplo:

Entrada:
2
4 3
37 5

Saida:
02 01 01
| Carta 001 | Carta 003 | Carta 004 |
| Carta 002 |
08 08 07 07 07
| Carta 001 | Carta 009 | Carta 017 | Carta 024 | Carta 031 |
| Carta 002 | Carta 010 | Carta 018 | Carta 025 | Carta 032 |
| Carta 003 | Carta 011 | Carta 019 | Carta 026 | Carta 033 |
| Carta 004 | Carta 012 | Carta 020 | Carta 027 | Carta 034 |
| Carta 005 | Carta 013 | Carta 021 | Carta 028 | Carta 035 |
| Carta 006 | Carta 014 | Carta 022 | Carta 029 | Carta 036 |
| Carta 007 | Carta 015 | Carta 023 | Carta 030 | Carta 037 |
| Carta 008 | Carta 016 |

Para resolver este problema, deve calcular o resto da quantidade de cartas pela quantidade de colunas. Com isso, você deverá adicionar a cada coluna, começando da primeira à esquerda, um elemento. Feito isso, a impressão é dada da seguinte forma: O primeiro elemento é o número 1, o segundo elemento é o primeiro mais a quantidade de elementos da primeira coluna, o terceiro elemento é a soma do segundo elemento com a quantidade dos elementos da segunda coluna e assim por diante. A seguir, o código em detalhes:


#include<stdio.h>
int main(){
int t; //quantidade de testes
int n; //quantidade de cartas
int m; //quantidade de colunas
int q,r; //quociente e resto
int i, j, anterior; //auxiliares
scanf("%d", &t);
while(t--){
scanf("%d %d", &n, &m);
if((n>=1) && (n<=1000) && (m>=1)&&(m<=100)){
q = n/m;
r = n % m;
int vet[m];
for(i =0; i < m ; i++){
vet[i] = q;
}
for(i=0; i < r ; i++){
vet[i] = vet[i] + 1;
}
for(i=0; i < m ; i++){
printf("%.2d ", vet[i]);
}
printf("\n");
for(i=1; i <= vet[0] ; i++){
anterior = i;
printf("| Carta ");
printf("%.3d ", i);
if(i <= q){
for(j=0; j < (m-1) ; j++){
printf("| Carta %.3d ", vet[j]+anterior);
anterior = vet[j]+anterior;
}
}
else{//imprime os ultimos elementos
for(j=0; j < (r-1) ; j++){
printf("| Carta %.3d ", vet[j]+anterior);
anterior = vet[j]+anterior;
}
}
printf("|\n");
}
}
}
return 0;
}

Como usar o SyntaxHighLighter para publicar código-fonte no seu Blog

SyntaxHighlighter é uma ferramenta desenvolvida em JavaScript que cria caixas de texto para códigos-fonte de programas. Com o SyntaxHighlighter você pode visualizar diversas linguagens, dentre elas Shell Script, C, C++, C#, CSS, Delphi, JavaScript, Java, Perl, PHP, Python, Ruby, SQL e XML.
Através do uso desta ferramenta é possível manter o código no formato original, sem perder a identação, o código fica com linhas numeradas e o código é colorido de acordo com a linguagem. É muito útil para visualizar, exemplificar e explicar códigos-fontes em blogs ou sites de programação.
Ainda há um botão para os leitores que desejarem copiar o código.

Neste tutorial vou explicar como inserir e utilizar o SyntaxHighlighter no blog para publicar seus códigos-fonte. Primeiro faça o login, clique em Layout (ou Design) e clique em Editar HTML. Faça o backup clicando em Baixar Modelo Completo.

1º Cole o código CSS no HTML do Blogger antes de </b:skin>
/* CSS do SyntaxHighlighter */
.dp-highlighter{font-family:"Consolas", "Monaco", "Courier New", Courier, monospace;font-size:12px;background-color:#E7E5DC;width:99%;overflow:auto;padding-top:1px;margin:18px 0 !important;}
.dp-highlighter ol,.dp-highlighter ol li,.dp-highlighter ol li span{border:none;margin:0;padding:0;}
.dp-highlighter a,.dp-highlighter a:hover{background:none;border:none;margin:0;padding:0;}
.dp-highlighter .bar{padding-left:45px;}
.dp-highlighter.collapsed .bar,.dp-highlighter.nogutter .bar{padding-left:0;}
.dp-highlighter ol{list-style:decimal;background-color:#fff;color:#5C5C5C;margin:0 0 1px 45px !important;padding:0;}
.dp-highlighter.nogutter ol,.dp-highlighter.nogutter ol li{list-style:none !important;margin-left:0 !important;}
.dp-highlighter ol li,.dp-highlighter .columns div{list-style:decimal-leading-zero;list-style-position:outside !important;border-left:3px solid #6CE26C;background-color:#F8F8F8;color:#5C5C5C;line-height:14px;margin:0 !important;padding:0 3px 0 10px !important;}
.dp-highlighter.nogutter ol li,.dp-highlighter.nogutter .columns div{border:0;}
.dp-highlighter .columns{background-color:#F8F8F8;color:gray;overflow:hidden;width:100%;}
.dp-highlighter .columns div{padding-bottom:5px;}
.dp-highlighter ol li.alt{background-color:#FFF;color:inherit;}
.dp-highlighter ol li span{color:#000;background-color:inherit;}
.dp-highlighter.collapsed ol{margin:0;}
.dp-highlighter.collapsed ol li{display:none;}
.dp-highlighter.printing{border:none;}
.dp-highlighter.printing .tools{display:none !important;}
.dp-highlighter.printing li{display:list-item !important;}
.dp-highlighter .tools{font:9px Verdana, Geneva, Arial, Helvetica, sans-serif;color:silver;background-color:#f8f8f8;border-left:3px solid #6CE26C;padding:3px 8px 10px 10px;}
.dp-highlighter.nogutter .tools{border-left:0;}
.dp-highlighter.collapsed .tools{border-bottom:0;}
.dp-highlighter .tools a{font-size:9px;color:#a0a0a0;background-color:inherit;text-decoration:none;margin-right:10px;}
.dp-highlighter .tools a:hover{color:red;background-color:inherit;text-decoration:underline;}
.dp-about{background-color:#fff;color:#333;margin:0;padding:0;}
.dp-about table{width:100%;height:100%;font-size:11px;font-family:Tahoma, Verdana, Arial, sans-serif !important;}
.dp-about td{vertical-align:top;padding:10px;}
.dp-about .copy{border-bottom:1px solid #ACA899;height:95%;}
.dp-about .title{color:red;background-color:inherit;font-weight:700;}
.dp-about .para{margin:0 0 4px;}
.dp-about .footer{background-color:#ECEADB;color:#333;border-top:1px solid #fff;text-align:right;}
.dp-about .close{font-size:11px;font-family:Tahoma, Verdana, Arial, sans-serif !important;background-color:#ECEADB;color:#333;width:60px;height:22px;}
.dp-highlighter .comment,.dp-highlighter .comments{color:#008200;background-color:inherit;}
.dp-highlighter .string{color:blue;background-color:inherit;}
.dp-highlighter .keyword{color:#069;font-weight:700;background-color:inherit;}
.dp-highlighter .preprocessor{color:gray;background-color:inherit;}

2º Cole o código a seguir antes da tag </head>. São as chamadas das linguagens. Cole somente as que você utiliza.

<script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shCore.js" type="text/javascript">
</script>
<script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCpp.js" type="text/javascript">
</script>
<script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCSharp.js" type="text/javascript">
</script>
<script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCss.js" type="text/javascript">
</script>
<script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushDelphi.js" type="text/javascript">
</script>
<script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushJava.js" type="text/javascript">
</script>
<script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushJScript.js" type="text/javascript">
</script>
<script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushPhp.js" type="text/javascript">
</script>
<script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushPython.js" type="text/javascript">
</script>
<script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushRuby.js" type="text/javascript">
</script>
<script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushSql.js" type="text/javascript">
</script>
<script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushVb.js" type="text/javascript">
</script>
<script src="http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushXml.js" type="text/javascript">
</script>

3º Cole o código antes da tag </body>

<script language="javascript">
dp.SyntaxHighlighter.BloggerMode();
dp.SyntaxHighlighter.HighlightAll('code');
</script>

Clique em Visualizar, e se não der nenhum problema clique em Salvar modelo.

Para adicionar o código nas postagens, basta clicar em Editar Html quando estiver fazendo seu post e adicione a tag:

<pre class="linguagem" name="code">Seu código aqui....
</pre>


No atributo class onde está escrito "linguagem", deve-se escrever a linguagem que irá utilizar (por exemplo C, C++, Java, Delphi, XML, HTML).
A listagem completa você encontra aqui.


OBS.: Para quem for usar o símbolo "<" em seu código, substitua-o por "&lt;"

A seguir, um exemplo do uso de SyntaxHighlighter:


#include<stdio.h>
int main(){
printf("Hello World finalmente!!!");
return 0;
}

Estudando correio eletrônico - Aula Prática

Vamos estudar o serviço de Correio Eletrônico utilizando o Apache James Server , um rico conjunto de módulos e bibliotecas escritos em Java,...