TOPIC

PROBLEM 1914 - URI Fórum 1.0

beecrowd asked 6 years ago

URI Online Judge Fórum 1.0

MOD

This topic was solved and cannot recieve new replies.

  • leufrazio replied 5 years ago

    W.a 20%,alguém poderia ajudar?Ou talvez disponibilizar mais casos de testes

    #include <iostream>
    using namespace std;
    int main(){
       int e,d;
       cin >>e;
       while(e--){
          int a,b;
          string n1,n2,c1,c2;
          cin >>n1>>c1>>n2>>c2;
          cin >>a>>b;
          if(c1=="PAR"){
             if((a+b)%2==0){
             cout<<n1<<endl;
             }else{
                cout<<n2<<endl;
             }
          }
          else if(c1=="IMPAR"){
             if((a+b)%2==0){
                cout<<n2<<endl;
             }
             else{
             cout<<n2<<endl;
          }
          }
       }
    MOD
  • leufrazio replied 5 years ago

    W.a 20%.Alguém pode ajudar?

    #include <iostream>
    using namespace std;
    int main(){
       int e,d;
       cin >>e;
       while(e--){
          int a,b;
          string n1,n2,c1,c2;
          cin >>n1>>c1>>n2>>c2;
          cin >>a>>b;
          if(c1=="PAR"){
             if((a+b)%2==0){
             cout<<n1<<endl;
             }else{
                cout<<n2<<endl;
             }
          }
          else if(c1=="IMPAR"){
             if((a+b)%2==0){
                cout<<n2<<endl;
             }
             else{
             cout<<n2<<endl;
          }
          }
       }
    }
    MOD
  • leufrazio replied 5 years ago

    W.a 20%.Alguém pode ajudar?O código passou nos testes.

    #include <iostream>
    using namespace std;
    int main(){
        int e,d;
        cin >>e;
        while(e--){
            int a,b;
            string n1,n2,c1,c2;
            cin >>n1>>c1>>n2>>c2;
            cin >>a>>b;
            if(c1=="PAR"){
                if((a+b)%2==0){
                cout<<n1<<endl;
                }else{
                    cout<<n2<<endl;
                }
            }
            else if(c1=="IMPAR"){
                if((a+b)%2==0){
                    cout<<n2<<endl;
                }
                else{
                cout<<n2<<endl;
            }
            }
        }
    }
    MOD
  • ggroth replied 6 years ago

    Para a entrada padrão do problema, tua saída está sendo:

    Quico
    Marcus
    Dayran
    Chaves

    Repare que, na terceira linha, o vencedor deveria ser Conrado.

  • Mateus39 replied 6 years ago

    #include<stdio.h>
    #include<string.h>
    
    main (){
    
        char p[300]="PAR",imp[300]="IMPAR",ad1[300],ad2[300],n1[100],n2[100];
        int vezes=0,i=0,a,b,s=0;
        scanf("%d",&vezes);
    
                for(i=1; i<=vezes; i++){
                    scanf("%s%s%s%s",&n1,&ad1,&n2,&ad2);
                    scanf("%d%d",&a,&b);
                    s=s+a+b;
    
                        if(strcmp(ad1,p)==0){
                                if(s%2==0)
                                    printf("%s\n",n1);
    
                        }
                        if(strcmp(ad2,p)==0){
                                if(s%2==0)
                                    printf("%s\n",n2);
    
                        }
                        if(strcmp(ad1,imp)==0){
                                if(s%2!=0)
                                    printf("%s\n",n1);
    
                        }
    
                        if(strcmp(ad2,imp)==0){
                                if(s%2!=0)
                                    printf("%s\n",n2);
    
                        }
    
                }
    
    }

    Está dando 40% WA, alguém podem e ajudar a encontrar o erro ? Testei algumas entrada no Toolkit e passou.

  • tmarinho1 replied 6 years ago

    Boa tarde! Veja o começo dessa explicação de strings (é de c++, mas basta olhar a parte de consumo de recursos e caracter NULL), pode te ajudar:

    http://www.tiexpert.net/programacao/c/string.php
    MOD
  • tmarinho1 replied 6 years ago

    Boa tarde, Stark! Parece que você definiu e2 com apenas quatro posições, mas, por exemplo, se você comparar ele com "IMPAR" (5 posições) nunca vai retornar 0, o que significa que nunca e2 pode conter "IMPAR", o que, por sua vez, é falso, segundo o enunciado do problema.

    MOD
  • tmarinho1 replied 6 years ago

    Bom dia, galera!

    Tenho uma dúvida diferente, quanto à uma submissão que foi aceita...

    Nesse problema, fiz uma outra versão da minha resposta certa, e ficou assim:

    Código resolvido
    MOD
  • Italooooxd replied 6 years ago

    eu fico recebendo wrong answer 40%, toda hora o codigo fica sempre mostrando o vencedor como só o primeiro nome escrito ou sempre o segundo escrito, mas eu não entendo o porque disso...

    #include <stdio.h>
    
    int main(){
    char nome1[100];
    char nome2[100];
    char escolha2[10];
    char escolha1[10];
    int N,i,x ,y,z;
    scanf ("%i",&N);
    for(i = 0; i <= N; i++){
        scanf("%s",nome1);
        scanf("%s",escolha1);
        scanf("%s",nome2);
        scanf("%s\n",escolha2);
        scanf("%i",&x);
        scanf("%i",&y);
        z = (x+y)%2;
        if((escolha1[0] = strcmp(escolha1 ,"IMPAR")) && z == 0){
            printf("%s\n",nome1);
    
        }
        else if ((escolha1[0] = strcmp(escolha1 ,"PAR")) && z != 0){
            printf("%s\n",nome1);
    
        }
        else if ((escolha2[0]= strcmp(escolha2, "IMPAR")) && z == 0){
            printf("%s\n",nome2);
        }
        else if ((escolha2[0] =strcmp(escolha2, "PAR")) && z != 0){
            printf("%s\n", nome2);
        }
    }
     return 0;
    }