Algorithm


Problem Name: 2 AD-HOC - beecrowd | 2410

Problem Link: https://www.beecrowd.com.br/judge/en/problems/view/2410

Frequencia na Aula

 

Por OBI - Olimpíada Brasileira de Informática 2012 BR Brazil

Timelimit: 1

Certa vez, numa aula, a professora passou um filme para os alunos assistirem. Durante este filme, ela passou uma lista de presença em sua sala para verificar a presença dos alunos, onde cada aluno deveria inserir apenas seu número de registro. Alguns alunos contudo, como possuem amigos que fogem da aula, decidiram ser camaradas e inseriram os números de registro de seus amigos fujões. O problema é que muitos alunos são amigos de alunos que fogem da aula e alguns números de registro acabaram sendo repetidamente inseridos na lista de presença. Além de tudo, alguns dos alunos que se esperava que não estivessem na aula de fato estavam!

A professora, ao notar que a lista de presença continha alguns números repetidos, ficou sem entender, mas decidiu dar um voto de confiança e dar presença a todos os alunos cujos números de registro estavam na lista. Como são muitos alunos na sala e muitos números com repetição, ela pediu a sua ajuda para determinar o total de alunos que receberam presença na aula.

 

Entrada

 

A primeira linha da entrada contém um número inteiro N (1 ≤ N ≤ 105), que informa a quantidade de números de registro que apareceram na lista de presença. Cada uma das N linhas seguintes contém um número de registro Vi (0 ≤ Vi ≤ 106)que foi inserido na lista de presença.

 

Saída

 

Seu programa deve imprimir uma única linha, contendo apenas um número inteiro, o número de alunos que receberam presença.

 

 

 

Exemplos de Entrada Exemplos de Saída

3

2

3

1

3

 

Code Examples

#1 Code Example with C Programming

Code - C Programming


#include <stdio.h>

void qSortInterno(unsigned *registros, int inicio, int fim);
void qSortI(unsigned *registros, int tam);

int main (void)
{

	unsigned qtsRegistros;
	int i, presencas;

	scanf("%u", &qtsRegistros);

	unsigned registros[qtsRegistros];

	for (i = 0; i  <  qtsRegistros; i++)
		scanf("%u", ®istros[i]);

	qSortI(registros, qtsRegistros);

	presencas = 0;
	for (i = 0; i  <  qtsRegistros; i++)
		if (registros[i] != registros[i - 1])
			presencas++;

	printf("%u\n", presencas);

}

void qSortInterno(unsigned *registros, int inicio, int fim)
{

	unsigned pivo;
	unsigned temp;
	int i, j;

	if (fim - inicio > 0)
	{
		if (inicio  <  fim)
		{
			i = inicio;
			j = fim;
			pivo = registros[(i + j) / 2];

			do
			{

				while (registros[i]  <  pivo)
					i++;
				while (registros[j] > pivo)
					j--;

				if (i  < = j)
				{

					temp = registros[i];
					registros[i] = registros[j];
					registros[j] = temp;
					i++; j--;

				}

			} while (i  < = j);

			qSortInterno(registros, inicio, j);
			qSortInterno(registros, i, fim);
		}
	}
}

void qSortI(unsigned *registros, int tam)
{

	qSortInterno(registros, 0, tam - 1);

}
Copy The Code & Try With Live Editor

Input

x
+
cmd
3
2
3
1

Output

x
+
cmd
3

#2 Code Example with C++ Programming

Code - C++ Programming


#include <iostream>
#include <set>
using namespace std;
int main() {
    std::cout.sync_with_stdio(false);
    std::cin.sync_with_stdio(false);
    int casos, i, davez;
    set < int> notas;
    cin >> casos;
    for (i = 0; i  <  casos; i++) {
        cin >> davez;
        notas.insert(davez);
    }
    cout << (int)notas.size() << endl;
    return 0;
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
3
2
3
1

Output

x
+
cmd
3
Advertisements

Demonstration


Previous
#2409 Beecrowd Online Judge Solution 2409 Colchão Solution in C, C++, Java, Js and Python
Next
#2411 Beecrowd Online Judge Solution 2411 O Tabuleiro Esburacado Solution in C, C++, Java, Js and Python