TOPIC

PROBLEM 1188 - URI Fórum 1.0

URI Online Judge asked 8 years ago

URI Online Judge Fórum 1.0

MOD

This topic was solved and cannot recieve new replies.

  • Gerson Groth replied 5 years ago

    Valores em '1' são os que tu está usando para o cálculo:

    000000000000
    000000000000
    000000000000
    000000000000
    000000000000
    000000000000
    000000000000
    000000111111
    000000011111
    000000001111
    000000000111
    000000000011
  • Jackson Felipe Magnabosco replied 5 years ago

    Aonde esta o erro no meu programa

    include include include

    using namespace std;

    int main() { //freopen("testando.in.c","r",stdin);

    int i,j;
    double M[12][12],S=0,x=0,med=0,aux;
    char O;
    
    cin >> O;
    
    for(i=0; i<12; i++) {
        for(j=0; j<12; j++) {
            cin >> M[i][j];
        }
    }
    
    aux=0;
    for(i=7; i<=11; i++) {
        for(j=i-1; j<=10+i; j++) {
            S += M[i][j];
            aux = aux + 1;
        }
    
    }
    
    cout << fixed << setprecision(1);
    
    if(O=='S') {
        cout << S <<endl;
    } else {
        med = S /aux;
        cout << med << endl;
    }
    
    return 0;

    }

  • Ailton Mizuki replied 5 years ago

    Voces teriam outros casos de teste, pois nos meus casos de teste obtenho o mesmo resultado do toolkit, porem quando submeto obtenho wrong answer

  • Gerson Groth replied 6 years ago

    O teu for mais interno só será executado quando o i for 0, já que vc não reinicializa o j... Mesmo depois disso, ele parece que está somando o valor de todas as colunas das últimas 5 linhas. Tente fazer uns testes, imprima a posições que vc está somando, algo assim...

    Obs: Sempre poste seus códigos entre as tags code, para manter o fórum organizado...

  • Lucas Coelho replied 6 years ago

    Nao estou conseguindo encontrar o erro, o de Area Superior eu fiz bem parecido e deu certo Já esse, WA 100%

    include define X 12

    int main(){ double matrix = 0, soma = 0; int i = 0, j = 0, limite1 = 4, limite2 = 7; char escolha;

    scanf("%c", &escolha);
    
    for ( ; i < X; i++){
        for ( ; j < X; j++){
            scanf("%lf", &matrix);
            if (i > 6 && j > limite1 && j < limite2){
                soma += matrix;
            }
        }
        limite1--;
        limite2++;
    }
    if (escolha == 'S')
        printf("%.1lf\n", soma);
    else if (escolha == 'M')
        printf("%.1lf\n", (soma / 30));
    
    return 0;

    }

  • Erich Rodrigues replied 6 years ago

    Sim, está correto.

    MOD
  • Santiago Soares replied 6 years ago

    Este trecho do meu código está correto????

    for(i=11;i>6;i--){
            for(j=i-1;j>5;j--){
            soma1 += M[i][j];
            }
            for(j=MAX-i;j<6;j++){
            soma2 += M[i][j];
            }   
            soma3=soma1+soma2;
        }
  • Nicolas Peter Lane replied 7 years ago

    Muito obrigado, amigo. Eu já resolvi o exercício 2 dias atrás.

  • Erich Rodrigues replied 7 years ago

    Consegui notar duas coisas erradas, você não está imprimindo a soma com uma casa decimal, e no problema está especificado que os valores são de dupla precisão, então você deve trocar as suas variáveis para double.

    MOD
  • Nicolas Peter Lane replied 7 years ago

    Poderiam me ajudar? Recebo WA.

  • Jean Bez replied 8 years ago

    Claro que o URI Online Judge aceita funções! =D

  • Guilherme Sanches replied 8 years ago

    Encontrei os problemas deste código; não se pode fazer funções, já que o URI não aceita. Tudo resolvido já, obrigado groth!

  • Gerson Groth replied 8 years ago

    Cara, olha esse trecho:

    for(i=7;i<=11;i++)
            for(j=5;j<=k;j++)
                {
                 *res=*res+_M[i][j];
                 k++;
                 j--;
                }

    Posso estar muito enganado, mas para mim nunca vai sair desse laço. Olhe bem, j tem que ser menor ou igual ao k, certo? Porém o j nunca aumenta o valor. Vc incrementa ele após cada iteração, mas antes disso vc decrementa ele, ou seja, sempre vai ter o mesmo valor. Além disso, vc sempre aumenta o valor de k, ou seja, j sempre será menor que k. Dessa forma, fica executando infinitamente e, por esse motivo, vc recebe TLE

  • Guilherme Sanches replied 8 years ago

    Bom dia pessoal, estou tentando resolver este exercício, mas recebo o erro "Time limit exceeded". Tentei criar uma função pra simplificar o cálculo, já que em ambos os casos (Média ou Soma) ele é o mesmo, diferenciados pela divisão por 30 no caso da média. Mesmo assim continuo recebendo o erro e não consigo validar a questão.

    Dúvida respondia. Código removido.

    Obrigado pela antenção!