Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
Mensagens : 10
Data de inscrição : 12/04/2017
Ver perfil do usuário

Treino Online 05/09

em Qua Set 06 2017, 00:30
Olá pessoal!

Como já tinha avisado, vou colocar os exercícios aqui e vocês terão até amanhã (06/09) às 20:30 para enviar a resolução das atividades. A entrega pode ser feita aqui mesmo pelo fórum! Todos que entregarem receberão 7pts, pode não ser muito mas é possível que faça diferença posteriormente. Qualquer dúvida, sintam-se livres para perguntar Wink .

Exercícios Turma Superior

  • Terminar o exercício "Frequência", nível Universitário da Fase 2 - OBI 2014: prova aqui


  • Exercício "Quebra-cabeça", nívle Universitário da Fase 1 - OBI 2015: prova aqui


Exercícios Turma Técnico

  • Exercício "Quebra-cabeça", nível Programação nível 2, Fase 1 - OBI 2015: prova aqui


  • Exercício "Fechadura", nível Programação nível 2, Fase 1 - OBI 2014: prova aqui


Boa sorte!
Mensagens : 1
Data de inscrição : 12/04/2017
Ver perfil do usuário

atividade frequencia

em Qui Set 07 2017, 15:48
#include <stdio.h>
#include <stdlib.h>

int main()
{
int k,t,X,R,op,i,j,N,Q;
int pos,maior;
scanf("%d%d",&N,&Q);
int tab[N][N],vet[N];
for(i=0;i<N;i++){
for(j=0;j<N;j++){
tab[i][j]=0;
}
vet[i]=0;
//i = 0;
}
for (i=0; i<Q; i++){

scanf("%d", &op);
if (op==1){
scanf("%d %d",&X ,&R);
for(t=0;t<N;t++){
tab[X][t]=R;
}

}
if (op==2){
scanf("%d%d",&X ,&R);
for(t=0;t<N;t++){
tab[t][X]=R;
}

}






/* if (op==3){
scanf("%d",&X);
for(t=0;t<N;t++){
for (j=t+1;j<N;j++){
if(tab[X][t]==tab[X][t]){

vet[t]++;
}
}

}
for (t=0;t<N;t++){
if(t==0){
maior=vet[t];
}
else
if(vet[t]>maior){
maior=vet[t];
pos=t;
}
}
printf("%d\n", tab[X][pos]);

}
if (op==4){
scanf("%d",&X);
for(t=0;t<N;t++){
for (j=t+1;j<N;j++){
if(tab[X][t]==tab[X][j]){
vet[t]++;
}
}

}
for (t=0;t<N;t++){
if(t==0){
maior=vet[t];
}
else
if(vet[t]>maior){
maior=vet[t];
pos=t;
}
}
printf("%d\n", tab[pos][X]);*/

}



return 0;
}




Mensagens : 2
Data de inscrição : 02/06/2017
Ver perfil do usuário

Re: Treino Online 05/09

em Qui Set 07 2017, 15:57
Seguem os codigos da Frequência e do Quebra-Cabeça, porém o da Frequência eu e o Pedro não conseguimos fazer funcionar pra valores muito grandes de N, deu erro de runtime...

(Não enviei em anexo pois o tamanho maximo foi excedido, mesmo sendo apenas 1KB o arquivo)

Frequência:


Código:

#include <stdio.h>
#include <stdlib.h>


int main(){
    int **matriz;
    long long i, j, qL;
    long long N, x, q;
    int op, r;
    long long ocorre[51] = {0};
    int maior = 0;

    scanf("%lld", &N);
    matriz = malloc(N*sizeof(int*));

    for(i=0; i<N; i++){
        matriz[i] = malloc(N*sizeof(int));
        for(j=0; j<N; j++){
            matriz[i][j] = 0;
        }
    }

    scanf("%lld", &q);

    for(qL=0; qL<q; qL++){
        scanf("%d", &op);

        if(op==1){
            scanf("%d %d", &x, &r);
            for(i=0; i<N; i++)
                matriz[x-1][i] = r;

        } else if (op==2) {
            scanf("%d %d", &x, &r);
            for(i=0; i<N; i++)
                matriz[i][x-1] = r;

        } else if (op==3) {
            scanf("%d", &x);

            for (i=0;i<N;i++)
                ocorre[matriz[x-1][i]]++;

            for (i=0;i<=50;i++)
                if (ocorre[i]>=ocorre[maior])
                    maior = i;

            printf("%d\n",maior);

            for (i=0;i<=50;i++)
                ocorre[i] = 0;
            maior = 0;

        } else if (op==4) {
            scanf("%d", &x);

            for (i=0;i<N;i++)
                ocorre[matriz[i][x-1]]++;

            for (i=0;i<=50;i++)
                if (ocorre[i]>=ocorre[maior])
                    maior = i;

            printf("%d\n",maior);

            for (i=0;i<=50;i++)
                ocorre[i] = 0;
            maior = 0;
        }

    }

    return 0;
}




Quebra-Cabeça:


Código:

#include <stdio.h>
#include <stdlib.h>

#define MAX 200001

typedef struct {
    char letra;
    long long encaixe;
} Peca;

int main(){

    long long n;
    Peca pecas[MAX];
    long long i,e,c,d;

    scanf("%lld",&n);

    for (i=0;i<n;i++){
        scanf("%lld %c %lld",&e,&c,&d);
        pecas[e].letra = c;
        pecas[e].encaixe = d;
    }

    i=0;
    while (i!=1){
        printf("%c",pecas[i].letra);
        i = pecas[i].encaixe;
    }
    printf("\n");

    return 0;
}


Conteúdo patrocinado

Re: Treino Online 05/09

Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum