#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>
#define COUNT ((uint32_t)100000)
int main()
{
uint32_t IN_value[COUNT]= {0};
bool IN_st [COUNT]= {0};
//Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ²
printf(" RAND_MAX = %d\n", RAND_MAX);//ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΌΠ°ΠΊΡ. Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
srand(time(NULL));
for(uint32_t i = 0; i < COUNT; i++)
{
IN_value[i] = rand();
}
printf(" arr[%u] ", COUNT);
//ΡΡΠ°ΡΡ
clock_t start = clock();
for(uint32_t i = 0; i < COUNT - 1; i++)
{
for(uint32_t j = i + 1; j < COUNT; j++)
{
//Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π»Ρ Π²Π΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ?
IN_st[i] = ( IN_st[i] || (IN_value[i] == IN_value[j]) );
}
for(uint32_t k = 0; k < i; k++)
{
//Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π»Ρ Π²Π΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ?
IN_st[i] = (IN_st[i] || (IN_value[i] == IN_value[k]) );
}
}
uint32_t res = 0;
for(uint32_t i = 0; i < COUNT; i++)
{
if(!IN_st[i])
IN_value[res++] = IN_value[i];
}
clock_t end = clock();
//----------------------------- ΡΠΈΠ½ΠΈΡ -----------------
double elapsed_ms = ((double)(end - start) / CLOCKS_PER_SEC) * 1000.0;
printf(" ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ: %.2lf ΠΌΡ\n", elapsed_ms);
printf(" res = %u\n ", res);
for(uint32_t i = 0; i < res; i++)
{
if(!((i + 1) % 1000))
printf(" %u ", IN_value[i]);
if(!(i % 8000))
printf("\n");
}
}