TOPIC

PROBLEM 1827 - URI Fórum 1.0

URI Online Judge asked 5 years ago

URI Online Judge Fórum 1.0

MOD

This topic was solved and cannot recieve new replies.

  • Klausnery replied 3 years ago

    Estou tomando WA 10%...

    while True:

    try:
        l=int(input())
        mat= [[0 for i in range(l)]for j in range(l)]
    
    except EOFError:
        break
    
    n=l/3
    m= (2*l)/3
    k=l/2
    
    for i in range(l):
        mat[i][l-1-i]='3'
    
    for i in range(l):
        mat[i][i]='2'
    
    for i in range(n,m+1):
        for j in range(n,m+1):
              mat[i][j]='1'
    
    mat[k][k]='4'
    
    for i in range(l):
        line=['%s' %w for w in mat[i]]
        print ''.join(line)
    
    #print('\n')
  • Ramon G. Gonze replied 3 years ago

    Olá pessoal,

    Estou com um Wrong answer de 20%, alguém poderia me auxiliar? Obrigado!

    Código:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(){
        int x, i, j, k, **m;
    
        while(scanf("%d", &x) != EOF){
            m = (int **) malloc(x*sizeof(int*));
            for(i = 0; i < x; i++){
                m[i] = (int *) malloc(x*sizeof(int));
            }
    
            for(i = 0, k = x-1; i < x; i++, k--){ //linha
                for(j = 0; j < x; j++){
                    m[i][j] = 0;
                }
                m[i][i] = 2;
                m[i][k] = 3;
            }
    
            for(i = 0; i < x; i++){
                for(j = 0; j < x; j++){
                    if( (i >= (x-1)/3 && j >= (x-1)/3) && (i <= (2*x+1)/3 && j <= (2*x+1)/3)){
                        m[i][j] = 1;
                    }
                }
            }       
    
            m[x/2][x/2] = 4;
    
            for(i = 0; i < x; i++){
                for(j = 0; j < x; j++){
                    printf("%d", m[i][j]);
                }
                printf("\n");
            }
            printf("\n");
    
            for(i = 0; i < x; i++){
                free(m[i]);
            }
            free(m);
        }
    }
  • Felipe Derkian replied 4 years ago

    oi galera tudo bom....? alguem pode me ajudar estou recebendo excesso de tempo...

    include include

    int main(){

    int N,i,j;
    
    while(scanf("%d",&N)&& EOF){
    
        if(N>=5 && N<=101){
    
                for(i=1;i<=N;i++){
                    for(j=1;j<=N;j++){
                        if(j==1+N/2 && i==1+N/2){
                            printf("4");
                        }
                        else if(i>N/3 && i<=N-N/3 && j>N/3 && j<=N-N/3){
                            printf("1");
                        }
                        else if(i==j){
                            printf("2");
                        }
                        else if(i==N+1-j){
                            printf("3");
                        }
                        else{ printf("0");
                        }
                    }
                    printf("\n");
                }
                printf("\n");
    
        }
    }

    }

    MOD
  • Fernando replied 4 years ago

    RUN TIME ERROR, RUBY? WHY?

    x = gets() while x.length >1 x = x.to_i unos = x/3 inicio = 0 fin = x-1 centro = x/2 for fila in (0..(x-1)) for col in (0..(x-1))

            if col == centro and fila == centro
                print "4"
            elsif (col >= unos and (x-1-unos) >= col) and (fila >= unos and (x-1-unos) >= fila)
                print "1"
            elsif col == inicio
                print "2"
            elsif col == fin
                print "3"
            else
                print "0"
            end 
        end 
        inicio +=1
        fin -=1
        print "\n"  
    end
    print "\n"
    x = gets()

    end gets()

  • Fernando replied 4 years ago

    Hello, I speak Spanish.

    Have RumTimeError, why?

    RUBY, RUBY, RUBY

    x = gets() while x.length >1 x = x.to_i unos = x/3 inicio = 0 fin = x-1 centro = x/2 for fila in (0..(x-1)) for col in (0..(x-1))

            if col == centro and fila == centro
                print "4"
            elsif (col >= unos and (x-1-unos) >= col) and (fila >= unos and (x-1-unos) >= fila)
                print "1"
            elsif col == inicio
                print "2"
            elsif col == fin
                print "3"
            else
                print "0"
            end 
        end 
        inicio +=1
        fin -=1
        print "\n"  
    end
    print "\n"
    x = gets()

    end gets()

  • Rafael Wruck replied 4 years ago

    Boa tarde Fiz várias mudanças, mas sempre ultrapassa o tempo limite. Não sei mais o que alterar, ou tenho que mudar a lógica toda. Já alterei para vários "For" ou com função, de todas as formas o resultado é o mesmo - "Time limit exceeded" Não sei mais o que alterar.

    while True:
        try:
            l=[]
            n=int(input())
            for i in range(n):
                l.append([0]*n)
            ini, fim=int(n/3), (n-(int(n/3)))
    
            if (5<=n<=101) and (n%2!=0):
                for i in range(n):
                    for j in range(n):
                        if ((i<ini) or (i>=fim)):
                            if i==j:
                                l[i][j]=2
                            elif (j==(n-1-i)):
                                l[i][n-1-i]=3
                        elif (i>=ini) or (i<fim):
                            if (ini<=j<fim):
                                l[i][j]=1
                            if i==int(n/2) and j==int(n/2):
                                l[int(n/2)][int(n/2)]=4
                        print (l[i][j], end = "")
                        if j==(len(l)-1):
                            print()
            print()
        except:
            break
  • 🧙The Install Wizard 🧙 replied 5 years ago

    A função SCANF nao coloca o valor EOF na variável. Ela retorna o valor EOF.

  • Rafael Kusdi replied 5 years ago

    futuquei tanto que achei

    TLE = while(scanf("%d",&tamanho),tamanho != EOF) ACCEPTED = while(scanf("%d",&tamanho) != EOF)

    vai entender, em um exercicio anterior a esse não deu nenhum problema usar o while com ',' e a variavel != EOF assim, era pra parar no EOF tb.

  • Rafael Kusdi replied 5 years ago

    Boa noite Galera, No meu código esta dando TLE, mas pra mim esta estranho, eu cronometrei o tempo e pareceu bem satisfatório o resultado alguém pode me dar dica?

    Segundo lugar no rank de C :D
  • Alexandre Martins replied 5 years ago

    Thanx :D

  • Filipe Teotônio Ramalho Mendonça replied 5 years ago

    Presentantion Error devido ao fato de que você não está pulando um linha depois de uma matriz. Tenta por um cout << endl; no final do while ;)

  • Alexandre Martins replied 5 years ago

    Recebo presentation error com esse código aqui :(

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int i,n,j;
        while(cin >> n)
        {
            for(i=1;i<=n;i++)
            {
                for(j=1;j<=n;j++)
                {
                    if(j==i && i==1+n/2) cout << 4;
                    else if(i>n/3 && i<=n-n/3 && j>n/3 && j<=n-n/3)
                            cout << 1;
                            else if(i==j) cout << 2;
                                    else if(i==n+1-j) cout << 3;
                                            else cout << 0;
                }
                cout << endl;
            }
        }
    }
  • Gabriel Oraboni Carvalho replied 5 years ago

    Obrigado pela ajuda, irei rever (:

  • Thulio Amorim replied 5 years ago

    Teste a entrada 9 no seu código e compare com a do Toolkit, tive o mesmo problema. A observação na descrição pode lhe ajudar a resolver.

    Boa sorte.

  • Gabriel Oraboni Carvalho replied 5 years ago

    Alguém poderia me ajudar, não sei o porquê de dar WA 50%

    Resolvido
  • Ronieri Sales replied 5 years ago

    No problema está especificando que a entrada é um número ímpar entre 5 e 101, incluindo eles.

  • Rafa Lopes replied 5 years ago

    Boa madrugada para todos! Eu quero saber outro fica o centro se a entrada é um numero PAR ? 6 200003 020030 001100 001400 030020 300002

    Valeu!!!