TOPIC

PROBLEM 1987 - URI Fórum 1.0

beecrowd asked 8 years ago

URI Online Judge Fórum 1.0

MOD

This topic was solved and cannot recieve new replies.

  • User177013 replied 7 years ago

    O pessoal que ainda tiver dando 10% de erro, tenta ler o 'm' como "%lld" em vez de "%lli". Não me perguntem por que isso funciona, mas aqui funcionou.

  • agomez1 replied 7 years ago

    10% error in this code, please help me

    include

    using namespace std;

    //Ambiente int num, cont, acum, a; //Proceso int main (){ while ( cin >> cont){ acum=0;

    cin >> num;
    for (int i=0; i<cont ; i++){
        a=num%10;
        acum = acum+a;
        num = num/10;
    }
    if (acum%3==0){
        cout << acum << " sim" << endl;
        }else{
            cout << acum << " nao" << endl;
    }
    }
    return 0;

    }

  • ttogores replied 7 years ago

    Acredito que m seja maior que o especificado. A única diferença de WA para AC no meu código é a troca de int por long long. Eu ignoro o n em ambas as implementações.

  • ldcampos replied 7 years ago

    obrigado manhoso pela ajuda, no fim das contas esse problema é bem estranho, não passei nem com long long, fui passar só quando usei cin e cout, não sei o porquê hasuhasuahsuash em geral scanf e printf é pra funfar mas enfim...

  • tiwizard replied 7 years ago

    O uri deve estar com algum caso de teste problemático ... continue usando long long int para m e troque a (soma dos dígitos) mod 3 pelo (valor de m dado no input) mod 3 ... use a soma dos digitos somento no printf ... aqui funcionou ... não entendo pq isso funciona =/

  • ldcampos replied 7 years ago

    tentei com long long int, mas continua dando 10% WA, a ideia é isso msm q eu fiz? tem algum caso especial?

  • tiwizard replied 7 years ago

    use long long para m

  • ldcampos replied 7 years ago

    Pessoal, por favor alguém me ajuda? já tentei esse problema em umas 20 submissões fica dando 10% wrong answer na última submissão o código ficou assim

    #include <stdio.h>
    #include <string.h>
    main()
    {
          int i,count,n,m,tam,j;
          char s[100],ans[10];
    
          while(scanf("%d %d",&n,&m)!=EOF)
          {
                            count=0;
                           while(m>0)
                           {
                                     count+=m%10;
                                     m/=10;
                           }
                            if(count%3==0)
                              printf("%d sim\n",count);
                             else
                              printf("%d nao\n",count);
    
          }
          return 0;
    }

    quem passou, o que fez de diferente? a ideia não é somar os dígitos, e se for divisível por 3 printar sim senão nao? não sei o que pode estar errado :S

  • ldcampos replied 7 years ago

    estou tomando 10% W.A, e existem casos no toolkit que estão esquisitos exemplo:

    1 19

    retorna 9 sim, que não deveria ser um caso válido, ou deveria?

    meu código está assim, estou seguindo a dica acima de verificar via código a quantidade de dígitos

    [code]
    #include <stdio.h>
    #include <string.h>
    main()
    {
          long long int i,count,n,m=10000000000LL;
          char s[30],ans[10];
    
          while(scanf("%lli %lli",&n,&m)!=EOF)
          {
                            count=0;
                            sprintf(s,"%lli",m);
                            n=strlen(s);
                            for(i=0,count=0;i<n;i++)
                              count+=s[i]-'0';
                            if(count%3==0)
                              printf("%lli sim\n",count);
                             else
                              printf("%lli nao\n",count);
    
          }
          return 0;
    }
    [/code]
  • Icaro-Lima replied 7 years ago

    A dica que eu segui pra não dar 10% W.A: Coloquem pro próprio código identificar quantos caracteres tem no número.

  • hferreira0 replied 7 years ago

    Estou recendo 10% WA, realmente não a minima ideia do que está errado

    #include <stdio.h>
    
    int main()
    {
        int qtd;
        while(scanf("%d", &qtd)!=EOF)
        {
            getchar();
            int i, valor = 0;
            for(i=0; i<qtd; i++)
                valor += (int)getchar()-48;
    
            printf("%d ", valor);
            printf(valor%3==0?"sim\n":"nao\n");
        }
    
        return 0;
    }
  • rsantana4 replied 7 years ago

    Código removido!

    WA 100%, o que há de errado??

  • KelvinS replied 8 years ago

    Estou recebendo o seguinte erro em python:

    n1, n2 = raw_input().split(" ")
    ValueError: need more than 1 value to unpack

    Acredito que há alguma coisa errada com as entradas do problema. Aparentemente tem pelo menos uma entrada que tem só um valor.

  • KelvinS replied 8 years ago

    Estou recebendo Runtime Error com o seguinte código:

    while True:
        try:
            a, n = raw_input().split(" ")
            soma = 0
            for x in xrange(0,len(n)):
                soma += int(n[x])
            if soma % 3 == 0:
                print str(soma) + " sim"
            else:
                print str(soma) + " nao"
        except EOFError:
            break

    Alguém poderia me ajudar? Obs.: já tentei com "\n" no print e também não funcionou.

  • ahacampos replied 8 years ago

    Deve haver entradas fora do especificado, com linhas extras ou apenas um número por linha. Faz toda diferença em Python. Obtive ACC em C++.

  • Quandray replied 8 years ago

    Eu acredito que há um caso de teste , onde n tem um valor incorreto para o número de dígitos m. Eu consegui AC , ignorando n .

  • Watanbe replied 8 years ago

    O meu quando eu fiz usando string também deu 10% wa, tente usar somente inteiros.

  • tyronedamasceno replied 8 years ago

    To recebendo WA 10%, alguma ideia de onde possa estar o erro? Criei várias entradas aqui e todas funcionaram

    int main()
    {
        string s;
        int n;
    
        while (cin >> n >> s)
        {
            int sum = 0;
    
            for (int i = 0; i < n; ++i)
                sum += s[i] - '0';
    
            if (sum % 3 == 0) cout << sum << " sim\n";
            else cout << sum << " nao\n";
        }
    
        return 0;
    }
  • galamiro replied 8 years ago

    olá estou recebendo 10% WA, eu já fiz vários casos teste mas não consigo achar.

    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main(){
    
       char  a[1000];
        int b, l, i;
    
       while(cin >> b){
    
        for(i=0 ; i<b; i++){
           cin >> a[i];
        }
        int soma = 0;
          for(i=0; i<b; i++){
            soma += a[i] - '0';
          }
          if(soma%3==0){
           cout << soma <<" sim"<<endl;
          }else{ cout << soma <<" nao" <<endl;}
    
      }
    }
  • Watanbe replied 8 years ago

    O problema tava no while(scanf(...), tinha q ser while(scanf(...) != EOF). Obrigado pela ajuda.

1 of 2