Skip to content

Instantly share code, notes, and snippets.

@anitainfo
Last active May 19, 2020 22:17
Show Gist options
  • Save anitainfo/39e6083d437f8e424de1a5452dd712ca to your computer and use it in GitHub Desktop.
Save anitainfo/39e6083d437f8e424de1a5452dd712ca to your computer and use it in GitHub Desktop.
#include<bits/stdc++.h> //biblioteca utilizada
const int MAXN=2100; //define o tamanho de MAXN que determinará o tamanho de um vetor
int main()
{
int N,i,v[MAXN],cont=1,lasti,k,j,soma; //declaração das variáveis
scanf("%d", &N); //lê 'N' na primeira linha de entrada
for(i=1; i<=N; i++) //loop para ler todos os valores da segunda linha de entrada de acordo com o 'N'
{
scanf("%d", &v[i]); //lê o valor de entrada 1 ou -1
}
lasti=N; //'lasti' assume o valor de 'N'
j=N; //'j' assume o valor de 'N'
for(i=2; i<=N*(N+1)/2; i++) //loop para determinar a cor de cada bolinha depois das 'N's bolinhas de entrada por PA
{
cont=i-1; //'cont' assume o valor de 'i'-1
soma=v[cont]+v[i]; //'soma' recebe o valor da soma de duas bolinhas vizinhas que compõe uma nova bolinha no próximo andar
if(soma==0) //se 'soma' for 0, ou seja, se as bolinhas vizinhas são de cores diferentes
{
k=i+j-1; //'k' assume o valor de 'i'+'j'
v[k]=-1; //o valor do vetor da bolinha é -1, ou seja, ela é branca
}
if(soma==2 || soma==-2) //se 'soma' for 2 ou -2, ou seja, se as bolinhas vizinhas são da mesma cor
{
k=i+j-1; //'k' assume o valor de 'i'+'j'
v[k]=1; //o valor do vetor da bolinha é 1, ou seja, ela é preta
}
if(i==lasti) //se 'i' for igual a 'lasti'
{
i++; //soma-se 1 à variável 'i'
lasti=lasti+j-1; //'lasti' é igual a 'lasti' + 'j' - 1
j--; //subtrai-se 1 da variável 'j'
}
}
if(v[k]==1)printf("preta"); //imprimi 'preta' se o valor do vetor da última bola for 1
else printf("branca"); //imprimi 'branca' se o valor do vetor da última bola não for 1, nesse caso, se ele for -1
return 0; //retorna a 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment