TOPIC

PROBLEM 1383 - URI Fórum 1.0

URI Online Judge asked 7 years ago

URI Online Judge Fórum 1.0

MOD

This topic was solved and cannot recieve new replies.

  • André Luiz Felix replied 4 years ago

    Estou recebendo WA10%, alguem tem alguma idéia de onde estou errando? Estou verificando se em cada linha, coluna ou bloco 3x3 existem 1 numero de cada entre 1 e 9

    Resolvido
  • Old man replied 6 years ago

    Tenta este:

    3
    1 3 2 5 7 9 4 6 8
    4 9 8 2 6 1 3 7 5
    7 5 6 3 8 4 2 1 9
    6 4 3 1 5 8 7 9 2
    5 2 1 7 9 3 8 4 6
    9 8 7 4 2 6 5 3 1
    2 1 4 9 3 5 6 8 7
    3 6 5 8 1 7 9 2 4
    8 7 9 6 4 2 1 5 3
    1 3 2 5 7 9 4 6 8
    4 9 8 2 6 1 3 7 5
    7 5 6 3 8 4 2 1 9
    6 4 3 1 5 8 7 9 2
    5 2 1 7 9 3 8 4 6
    9 8 7 4 2 6 5 3 1
    2 1 4 9 3 5 6 8 7
    3 6 5 8 1 7 9 2 4
    8 7 9 6 4 2 1 3 5
    1 3 2 5 7 9 4 6 8
    4 9 8 2 6 1 3 7 5
    7 5 6 3 8 4 2 1 9
    6 4 3 1 5 8 7 9 2
    5 2 1 7 9 3 8 4 6
    9 8 7 4 2 5 6 3 1
    2 1 4 9 3 6 5 8 7
    3 6 5 8 1 7 9 2 4
    8 7 9 6 4 2 1 5 3

    Saída:

    Instancia 1
    SIM
    
    Instancia 2
    NAO
    
    Instancia 3
    NAO

    Espero ter ajudado. Att. Leoci Melo.

  • Unknown replied 4 years ago

    Algumas ideias:[list:94s417dv][:94s417dv]for L 1..3 -> for C 1..3 -> if[/:m:94s417dv] [:94s417dv]Σ = 45, e ∏ = 362880?[/:m:94s417dv][/list:u:94s417dv] Existem mil maneiras de preparar ... invente uma!

  • Bruno Camargo replied 4 years ago

    Uma pergunta boba: existem alguma forma de checar os 9 blocos internos sem a utilização de 9 if's? Eu acredito que não, mas vai saber né...

  • Willian Pacheco de Souza replied 4 years ago

    Pessoal, estou recebendo WA 100%, mas nâo consigo detectar o erro. Alguém poderia ajudar? Obrigado

    #include<stdio.h>
    int main()
    {
      int sudoku[9][9], i, j, total=0, n, instancia=1, cont=0, sim=1;
      int c=0, c1=3;
    
        scanf("%d", &n);
    
        for(; n>0; n--)
        {
            for(i=0; i<9; i++)
                for(j=0; j<9; j++)
                    scanf("%d", &sudoku[i][j]);
            for(; cont<3; cont++)       //CONTAGEM DAS LINHAS DE 0 - 2
            {
                for(i=0; i<3; i++)
                {
                    for(j=c; j<c1; j++)
                    {
                        total = total + sudoku[i][j];
                        if(sudoku[i][j] == 0)
                        {
                            sim=0;
                            break;
                        }
    
                    }
    
                }
                if(total != 45)
                {               
                    sim=0;
                    break;
                }
    
                c=c+3;
                c1=c1+3;
                total=0;
            }
            cont=0;
            total=0;
            c=0;
            c1=3;
            for(; cont<3; cont++)     //CONTAGEM DAS LINHAS DE 3 - 5
            {
                for(i=3; i<6; i++)
                {
                    for(j=c; j<c1; j++)
                    {
                        total = total + sudoku[i][j];
                        if(sudoku[i][j] == 0)
                        {
                            sim=0;
                            break;
                        }
    
                    }
    
                }
                if(total != 45)
                {               
                    sim=0;
                    break;
                }
    
                c=c+3;
                c1=c1+3;
                total=0;
            }
            cont=0;
            total=0;
            c=0;
            c1=3;
            for(; cont<3; cont++)    //CONTAGEM DAS LINHAS DE 6 - 8
            {
                for(i=6; i<9; i++)
                {
                    for(j=c; j<c1; j++)
                    {
                        total = total + sudoku[i][j];
                        if(sudoku[i][j] == 0)
                        {
                            sim=0;
                            break;
                        }
    
                    }
    
                }
                if(total != 45)
                {               
                    sim=0;
                    break;
                }
    
                c=c+3;
                c1=c1+3;
                total=0;
            }
    
            for(i=0; i<9; i++)  //CONTAGEM DA LINHAS
            {
                for(j=0; j<9; j++)
                {   
                    total=total+sudoku[i][j];
                }
                if(total!=45)
                    {
                        sim=0;
                        break;
                    }
                total=0;
            }
    
            for(j=0; j<9; j++)   //CONTAGEM DAS COLUNAS
            {
                for(i=0; i<9; i++)
                {
                    total=total+sudoku[i][j];    
                }
                if(total!=45)
                    {
                        sim=0;
                        break;
                    }
                total=0;
            }
    
        if(sim)
            printf("Instancia %d\nSIM\n", instancia);
        else
            printf("Instancia %d\nNAO\n", instancia);
        printf("\n");
    
        c=0;
        c1=3;
        instancia++;
        sim=1;
        total=0;
    
    }
    return 0;
    }
  • Mariana Bastos replied 4 years ago

    Estou recebendo WA(10%)

    #include <stdio.h>
    #include <stdlib.h>
    
    int sudokuLinha(int M[][9]){
        int i, j,soma, v[9];
    
        for(i=0;i<9;i++){
            soma=0;
            for(j=0;j<9;j++){
                soma += M[i][j];
            }
            v[i]=soma;
    
            if(v[i] != 45)
                return -1;
        }
    
        return 0;
    }
    
    int sudokuColuna(int M[][9]){
        int i,j,soma,v[9];
    
        for(j=0;j<9;j++){
            soma=0;
            for(i=0;i<9;i++){
                soma+=M[i][j];
            }
            v[j]=soma;
    
            if(v[j] != 45)
                return -1;
        }
    
        return 0;
    }
    
    int sudokutresXtres(int M[][9], int linhaI, int linhaF, int colI, int colF){
        int i,j;
        int soma = 0;
        int v[9];
    
        for(i=linhaI; i<=linhaF; i++){
            for(j=colI;j<=colF;j++){
                soma+=M[i][j];
            } 
        }
    
        if(soma != 45)
            return -1;
    
        return 0;
    }
    
    int main(int argc, char *argv[]) {
    
        int M[9][9];
        int i,j;
        int linha, coluna, tresXtres;
        int n,cont=1;
    
        scanf("%d", &n);
        while(n--){
            for(i=0; i<9;i++){
                for(j=0;j<9;j++){
                    scanf("%d", &M[i][j]);
                }
            }
    
            printf("Instancia %d\n",cont);
    
            linha = sudokuLinha(M);
            coluna = sudokuColuna(M);
    
            if(linha == -1 || coluna == -1)
                puts("NAO");
            else{
    
                tresXtres+=sudokutresXtres(M,0,2,0,2);  
                tresXtres+=sudokutresXtres(M,0,2,3,5);
                tresXtres+=sudokutresXtres(M,0,2,6,8);
                tresXtres+=sudokutresXtres(M,3,5,0,2);
                tresXtres+=sudokutresXtres(M,3,5,3,5);
                tresXtres+=sudokutresXtres(M,3,5,6,8);
                tresXtres+=sudokutresXtres(M,6,8,0,2);
                tresXtres+=sudokutresXtres(M,6,8,3,5);
                tresXtres+=sudokutresXtres(M,6,8,6,8);
    
                if(tresXtres != 0)
                    puts("NAO");
                else
                    puts("SIM"); 
            }
            puts("");
            cont++;
        }
        return 0;
    }
  • André Luiz Felix replied 4 years ago

    A comparação entre linha, coluna e grade estava errada!

  • Matheus Resende Guedes replied 4 years ago

    O problema é que vc esta olhando a soma da linha,coluna,quadrante. A soma sendo 45 não garante que todos os números estejam presentes, pois poderíamos ter algo do tipo 1 2 3 4 5 5 8 8 9 .Tente verificar se todos de 1 a 9 estão presentes

  • Lucas Berg replied 4 years ago

    Desde ontem que o problema foi julgado novamente passei a receber Wrong Answer (100%) nesse problema. Muito embora ele estava como Accepted a uns 2 anos atrás. ;D

    Com isso fui no site da competição do IME onde o problema saiu e baixei os casos de testes e comparei as saídas e novamente tudo batia. Existe algo errado no meu código que deixei escapar ?

    #include <iostream>
    
    using namespace std;
    
    int main ()
    {
        int n, **s, i, j, k;
        int soma_lin, soma_col;
        int bloco[9];
        int tick_lin, tick_col, tick_block;
        cin >> n;
        k = 1;
        s = new int*[9];
        for (j = 0; j < 9; j++)
        {
            s[j] = new int[9];
            bloco[j] = 0;
        }
        while (k <= n)
        {
            for (i = 0; i < 9; i++)
            {
                for (j = 0; j < 9; j++)
                    cin >> s[i][j];
            }
            tick_lin = 0;
            tick_col = 0;
            tick_block = 0;
            for (i = 0; i < 9; i++)
            {
                soma_lin = 0;
                soma_col = 0;
                for (j = 0; j < 9; j++)
                {
                    soma_lin += s[i][j];
                    soma_col += s[j][i];
                    // Bloco 1
                    if (i >= 0 && i <= 2 && j >= 0 && j <= 2)
                        bloco[0] += s[i][j];
                    // Bloco 2
                    else if (i >= 0 && i <= 2 && j >= 3 && j <= 5)
                        bloco[1] += s[i][j];
                    // Bloco 3
                    else if (i >= 0 && i <= 2 && j >= 6 && j <= 8)
                        bloco[2] += s[i][j];
                    // Bloco 4
                    else if (i >= 3 && i <= 5 && j >= 0 && j <= 2)
                        bloco[3] += s[i][j];
                    // Bloco 5
                    else if (i >= 3 && i <= 5 && j >= 3 && j <= 5)
                        bloco[4] += s[i][j];
                    // Bloco 6
                    else if (i >= 3 && i <= 5 && j >= 6 && j <= 8)
                        bloco[5] += s[i][j];
                    // Bloco 7
                    else if (i >= 6 && i <= 8 && j >= 0 && j <= 2)
                        bloco[6] += s[i][j];
                    // Bloco 8
                    else if (i >= 6 && i <= 8 && j >= 3 && j <= 5)
                        bloco[7] += s[i][j];
                    // Bloco 9
                    else if (i >= 6 && i <= 8 && j >= 6 && j <= 8)
                        bloco[8] += s[i][j];
                }
                if (soma_lin == 45)
                    tick_lin++;
                if (soma_col == 45)
                    tick_col++;
            }
            // Percorre os blocos
            for (i = 0; i < 9; i++)
            {
                if (bloco[i] == 45)
                    tick_block++;
                // Zera para a próxima iteração
                bloco[i] = 0;
            }
            if (tick_lin == 9 && tick_col == 9 && tick_block == 9)
                cout << "Instancia " << k << endl << "SIM" << endl;
            else
                cout << "Instancia " << k << endl << "NAO" << endl;
            // Será que pular um espaco no ultimo caso de teste da erro ?
            cout << endl;   
            k++;
        }
        for (i = 0; i < 9; i++)
            delete [] s[i];
        delete [] s;
    }
    MOD
  • Gabriel Duarte replied 4 years ago

    Eu recebi WA tbb quando tentei verificar se a soma de cada linha é 45, coluna e quadrados, igual você fez. Consegui ACC, só depois de mudar essa forma de verificação, ao invés de ver se todos tem soma 45 eu realmente verifico se está presente todos os numeros de 1 a 9. Não sei se é o mesmo erro que o seu, mas talvez ajude.

    MOD
  • Amauri Pietro replied 4 years ago

    Recebi WA 10% :(

    #include <bits/stdc++.h>
    using namespace std;
    
    int main(){
        int a, b=0, c[9][9], cont=0, o=0, p=0;
    
        cin >> a;
        for(int t=0; a>t; t++){
            for(int i=0; 8>=i; i++){
                for(int j=0; 8>=j; j++){
                    cin >> c[i][j];
                    cont+=c[i][j];
                }
                if(cont!=45){
                    b=1;
                }
                cont=0;
            }
            if(b!=1){
                for(int j=0; 8>=j; j++){
                    for(int i=0; 8>=i; i++){
                        cont+=c[i][j];
                    }
                    if(cont!=45){
                        b=1;
                        break;
                    }
                    cont=0;
                }
            }
            if(b!=1){
                for(int k=1; 9>=k; k++){
                    cont=0;
                    for(int i=o; o+3>i; i++){
                        for(int j=p; p+3>j; j++){
                            cont+=c[i][j];
                        }
                    }
                    if(cont!=45){
                        b=1;
                        break;
                    }
                    if(k%3==0){
                        o+=3;
                        p=0;
                    }
                    else
                        p+=3;
                }
            }
            cout << "Instancia " << t+1 << endl;
            if(b!=1){
                cout << "SIM" << endl << endl;
            }
            else cout << "NAO" << endl << endl;
    
        }
    }
  • Debora Cristina replied 5 years ago

    Estou obtendo WA 10%, no código eu apenas verifico se a média da soma de todos os valores da matriz é 45, caso contrário, a entrada não é solução. Deve ser feita mais algumas coisa? Segue código

    #include <stdio.h>
    #include <stdlib.h>
    
    #define TAMANHO 9
    
    void main(){
        int testes,i,j,k,matriz[TAMANHO][TAMANHO],soma=0;
    
        scanf("%d",&testes);
    
        for(i=0;i<testes;i++){
            for(j=0;j<TAMANHO;j++){
                for(k=0;k<TAMANHO;k++){
                    scanf("%d",&matriz[j][k]);
                    soma+=matriz[j][k];
                }
            }
    
            if(soma/TAMANHO==45){
                printf("Instancia %d\nSIM\n\n", i+1);
            }else{
                printf("Instancia %d\nNAO\n\n", i+1);
            }
    
        }
    }
  • Raul Sena Ferreira replied 5 years ago

    Gustavo, coloque o seu código dentro da tag Code. Não dá pra ler dessa forma, quanto mais ajudar a encontrar um erro.

  • Gustavo Borges replied 5 years ago

    O QUE TEM DE ERRADO NO MEU CODIGO??????

    include

    int main () { int N,i,j,k,matriz[9][9],soma1=0,soma2=0,valor=0,quadrante=0; scanf("%d",&N); for (i=0;i<N;i++) { for (j=0;j<9;j++) { for (k=0;k<9;k++) { scanf("%d",&valor); if (valor>=1 && valor <=9) { matriz[j][k]=valor; } else { matriz[j][k]=0; } } } for (j=0;j<9;j++) {

      if ((matriz[j][0]+matriz[j][1]+matriz[j][2]+matriz[j][3]+matriz[j][4]+matriz[j][5]+matriz[j][6]+matriz[j][7]+matriz[j][8]==45) && (matriz[j][0] != matriz[j+1][0] && matriz[j][1] != matriz[j+1][1] && matriz[j][2] != matriz[j+1][2] && matriz[j][3] != matriz[j+1][3] && matriz[j][4] != matriz[j+1][4] && matriz[j][5] != matriz[j+1][5] && matriz[j][6] != matriz[j+1][6] && matriz[j][7]!=matriz[j+1][7] && matriz[j][8]!=matriz[j+1][8]))
      {
          soma1++;
      }
    
    }
    for (k=0;k<9;k++)
    {
    
      if ((matriz[0][k]+matriz[1][k]+matriz[2][k]+matriz[3][k]+matriz[4][k]+matriz[5][k]+matriz[6][k]+matriz[7][k]+matriz[8][k]==45) && (matriz[0][k]!=matriz[0][k+1] && matriz[1][k]!=matriz[1][k+1] && matriz[2][k]!=matriz[2][k+1] && matriz[3][k]!=matriz[3][k+1] && matriz[4][k]!=matriz[4][k+1] && matriz[5][k]!=matriz[5][k+1] && matriz[6][k]!=matriz[6][k+1] && matriz[7][k]!=matriz[7][k+1] && matriz[8][k]!=matriz[8][k+1]))
      {
          soma2++;
      }
      if (matriz[0][k]==5 && matriz[1][k]==5 && matriz[2][k]==5 && matriz[3][k]==5 && matriz[4][k]==5 && matriz[5][k]==5 && matriz[6][k]==5 && matriz[7][k]==5 && matriz[8][k]==5)
      {
          soma2--;
      }
    
    }
    for (j=0;j<3;j++)
    {
    
        if (matriz[0][0]+matriz[0][1]+matriz[0][2]+matriz[1][1]+matriz[1][2]+matriz[1][0]+matriz[2][1]+matriz[2][2]+matriz[2][0]==45 && matriz[j][0]!=matriz[j+1][0] && matriz[j][1]!=matriz[j+1][1] && matriz[j][2]!=matriz[j+1][2])
        {
            quadrante++;
        }
        if (matriz[0][3]+matriz[0][4]+matriz[0][5]+matriz[1][3]+matriz[1][4]+matriz[1][5]+matriz[2][3]+matriz[2][4]+matriz[2][5]==45 && matriz[j][3]!=matriz[j+1][3] && matriz[j][4]!=matriz[j+1][4] && matriz[j][5]!=matriz[j+1][5])
        {
            quadrante++;
        }
        if (matriz[0][6]+matriz[0][7]+matriz[0][8]+matriz[1][6]+matriz[1][7]+matriz[1][8]+matriz[2][6]+matriz[2][7]+matriz[2][8]==45 && matriz[j][6]!=matriz[j+1][6] && matriz[j][7]!=matriz[j+1][7] && matriz[j][8]!=matriz[j+1][8])
        {
            quadrante++;
        }
    
    }
    for (j=3;j<6;j++)
    {
    
        if (matriz[3][3]+matriz[3][4]+matriz[3][5]+matriz[4][3]+matriz[4][4]+matriz[4][5]+matriz[5][3]+matriz[5][4]+matriz[5][5]==45 && matriz[j][3]!=matriz[j+1][3] && matriz[j][4]!=matriz[j+1][4] && matriz[j][5]!=matriz[j+1][5])
        {
            quadrante++;
        }
        if (matriz[3][0]+matriz[3][1]+matriz[3][2]+matriz[4][0]+matriz[4][1]+matriz[4][2]+matriz[5][0]+matriz[5][1]+matriz[5][2]==45 && matriz[j][0]!=matriz[j+1][0] && matriz[j][1]!=matriz[j+1][1] && matriz[j][2]!=matriz[j+1][2])
        {
            quadrante++;
        }
        if (matriz[3][6]+matriz[3][7]+matriz[3][8]+matriz[4][6]+matriz[4][7]+matriz[4][8]+matriz[5][6]+matriz[5][7]+matriz[5][8]==45 && matriz[j][6]!=matriz[j+1][6] && matriz[j][7]!=matriz[j+1][7] && matriz[j][8]!=matriz[j+1][8])
        {
            quadrante++;
        }
    }
    for (j=6;j<9;j++)
    {
    
        if (matriz[6][6]+matriz[6][7]+matriz[6][8]+matriz[7][6]+matriz[7][7]+matriz[7][8]+matriz[8][6]+matriz[8][7]+matriz[8][8]==45 && matriz[j][6]!=matriz[j+1][6] && matriz[j][7]!=matriz[j+1][7] && matriz[j][8]!=matriz[j+1][8])
        {
            quadrante++;
        }
        if (matriz[6][0]+matriz[6][1]+matriz[6][2]+matriz[7][0]+matriz[7][1]+matriz[7][2]+matriz[8][0]+matriz[8][1]+matriz[8][2]==45 && matriz[j][0]!=matriz[j+1][0] && matriz[j][1]!=matriz[j+1][1] && matriz[j][2]!=matriz[j+1][2])
        {
            quadrante++;
        }
        if (matriz[6][3]+matriz[6][4]+matriz[6][5]+matriz[7][3]+matriz[7][4]+matriz[7][5]+matriz[8][3]+matriz[8][4]+matriz[8][5]==45 && matriz[j][3]!=matriz[j+1][3] && matriz[j][4]!=matriz[j+1][4] && matriz[j][5]!=matriz[j+1][5])
        {
            quadrante++;
        }
    }
    printf("Instancia %d\n",i+1);
    if (soma1==9 && soma2==9 && quadrante==27)
    {
        printf("SIM\n\n");
    }
    else
    {
        printf("NAO\n\n");
    }
    soma1=0;
    soma2=0;
    quadrante=0;
    valor=0;

    } return 0; }

  • Old man replied 6 years ago

    De nada. Att. Leoci Melo.

  • Miguel Araújo replied 6 years ago

    leocij, caraca não tinha sacado esse teste. VALEU, abraços! :)

  • Miguel Araújo replied 6 years ago

    Galera, estou levando 100% WA nesta questão, mas eu já rodei vários testes e minha saída bate com o esperado. Já faz um tempo que eu procuro falhas no meu código e não encontro. Alguém pode passar um caso de teste onde meu código falha? Grato pela ajuda!

    AC! :)
  • Francielle Marques replied 6 years ago

    O que há de errado? Wrong ...

    #include <stdio.h>
    #include <stdlib.h>
    
    //Define constantes
    #define LINHA 9
    #define COLUNA 9
    
    //Funcao Principal
    
    int main () {
    
        int sudoku[LINHA][COLUNA];  
        int instancia,i,j,k,z,somaColuna[COLUNA],somaLinha[LINHA],soma=0,limiteLinha=2,limiteColuna=2;
        int sim=0,nao=0;
        int somaQuadrante[LINHA];
        int w=0,inicioColuna=0,inicioLinha=0;
    
        scanf("%d",&instancia);
    
    if (instancia>0){
        //laco que controla a quantidade de k matrizes sudoku que serão lidas
    
        for( k = 1;k <= instancia; k++){
            //laco que controla as posições da matriz (i,j)
            for(i = 0; i < LINHA ; i++){
                for( j = 0; j < COLUNA; j++){
    
                    scanf("%d",&sudoku[i][j]);      
    
                }
    
            }
            //somando os valores das colunas e armazenando a soma no vetor somaColuna
            for(j = 0; j < COLUNA ; j++){
                for( i = 0; i < LINHA; i++){
                    soma = soma + sudoku[i][j];
                }
                 somaColuna[j] = soma;
                 soma=0;
            }
            //somando os valores das linhas e armazenando no vetor somaLinha
    
            for(i = 0; i < LINHA ; i++){
                for( j = 0; j < COLUNA; j++){
    
                    soma = soma + sudoku[i][j];     
    
                }
                somaLinha[i] = soma;
                soma=0;
    
            }
    
            //somando os valores que estao nas matrizes 3x3
            while (w<9){
                for (i=inicioLinha; i<=limiteLinha; i++){
                    for(j=inicioColuna; j<=limiteColuna; j++){
                        soma = soma + sudoku[i][j];
                    }
                }
                inicioColuna = j;
                limiteColuna = j + 3;
                somaQuadrante[w] = soma;
                soma = 0;
                w++;
                if (limiteColuna>8){
                    inicioLinha = limiteLinha + 1;
                    limiteLinha = limiteLinha + 3;
                    inicioColuna = 0;
                    limiteColuna = 2;
                }
            }
            //verificando se a soma é igual a 45 (9+8+7+6+5+4+3+2+1)
            for(z = 0; z < 9 ; z++){
    
                if((somaColuna[z]==45)&&(somaLinha[z]==45)&&(somaQuadrante[z]==45)){
                    sim++;              
                }else if ((somaColuna[z]=!45)&&(somaLinha[z]=!45)&&(somaQuadrante[z]=!45)){
                    nao++;  
                }
    
                if (sim==9){
                    printf("Instancia %d\n",k);
                    printf("SIM\n");
                    printf(" ");
                }else if (nao>=1){
                    printf("Instancia %d\n",k);
                    printf("NAO\n");
                    printf(" ");
                }
    
            }
            sim=0;
            nao=0;
    
        }
    
    }
        return 1;
    }
  • Thiago Yonamine replied 6 years ago

    10% wa :/

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int i,j,k=0,n,sl=0,sc=0,x=0,cont=0,sq=0,l=0,v[10];
        int m[9][9];
        scanf("%d",&n);
        while(cont<n)
        {
            for(i=0; i<=9; i++)
            {
                v[i]=0;
            }
            for(i=0; i<9; i++) //ler o sudoku
            {
                for(j=0; j<9; j++)
                {
                    scanf("%d",&m[i][j]);
                }
            }
            //verificar linhas e colunas
            for(i=0; i<9; i++)
            {
                sl=0;
                sc=0;
                for(j=0; j<9; j++)
                {
                    sl+=m[i][j];
                    sc+=m[j][i];
                    v[m[i][j]]++;
    
                }
                if(sl!=45 || sc!=45)
                {
                    i=9;
                    x=1;
                }
            }
            //verificar quadrante
            while(l<=6)
            {
                k=0;
                while(k<=6)
                {
                    sq=0;
                    for(i=l; i<3+l; i++)
                    {
    
                        for(j=k; j<3+k; j++)
                        {
                            sq+=m[i][j];
                        }
                    }
                    if(sq!=45)
                    {
                        l=6;
                        x=1;
                    }
                    k=k+3;
                }
                l=l+3;
            }
    
            //verifica repetiçao
            for(i=1; i<=9; i++)
            {
                if(v[i]!=9)
                {
                    x=1;
                    i=9;
                }
            }
            if(x==0)
            {
                printf("Instancia %d\n",cont+1);
                printf("SIM\n\n");
            }
            else
            {
                printf("Instancia %d\n",cont+1);
                printf("NAO\n\n");
            }
    
            cont++;
        }
        return 0;
    }
  • vguinnie replied 6 years ago

    Estou levando WA (10%). Não consigo encontrar o erro. Meu código ta gigante... asuhhsua

    Alguém pode me ajudar?

    Consegui ganhar AC =D
1 of 2