mam napisany taki program gdy testuje go w codeblocksie wyniki sa poprawne ale gdy wrzucam do testera na putty są złe. nie wiem o co chodzi? ktoś może wie co zrobić?
polecenie:
Test wyboru limit czasu 1s; limit pamięci 32 MB
Franek pisze egzamin z Informatyki. Egzamin jest w formie testu wyboru z czterema odpowiedziami do każdego
pytania – trzeba wybrać jedną prawidłową odpowiedź. Niestety Franek nie jest przygotowany do egzaminu,
więc postanowił, że będzie udzielał odpowiedzi według jakiegoś schematu, nie wnikając w treść zadań. Wymyślił następujący schemat:
- Jesli któraś odpowiedź jest przynajmniej dwukrotnie dłuższa lub przynajmniej dwukrotnie krótsza od wszystkich pozostałych, wtedy powinno się ją wybrać (o ile jest tylko jedna taka odpowiedź).
- Jeśli nie ma takiej odpowiedzi, jak powyżej (dokładnie jednej), wtedy wybiera się zawsze odpowiedz A.
Napisz program, który generuje odpowiedzi do testu według powyższego schematu.
Wejście:
Dane wejściowe to cztery wiersze tekstu – każdy z nich zawiera przedrostek ”A.”, ”B.”, ”C.” lub ”D.” (w
tej własnie kolejności) oraz odpowiedź o długości do 100 znaków, zawierajacą litery alfabetu łacinskiego i znaki
podkreślenia ” ” (nie ma tam spacji). Długosci przedrostka nie wlicza się do długości odpowiedzi.Wyjście:
Program powinien wypisać literę A, B, C lub D oznaczajacą wybraną odpowiedź.
Przykład 1.
Wejście
A.Stolica Wenezueli to Caracas
B.Caracas jest stolica Wenezueli
C.Wenezuela ma stolice i jest nia Caracas
D.CarrambaWyjście
D
Przykład 2.
Wejście
A.Merlin
B.Morgana
C.Baba Jaga
D.GandalfWyjście
A
moj program:
#include <iostream>
#include<cstdlib>
#include <cmath>
#include <cstdio>
#include<sstream>
#include <string>
using namespace std;
int main()
{
string a,b,c,d;
int tab[4];
getline(cin,a);
getline(cin,b);
getline(cin,c);
getline(cin,d);
tab[0]=a.length()-2;
tab[1]=b.length()-2;
tab[2]=c.length()-2;
tab[3]=d.length()-2;
if(tab[0]<=(tab[1]/2)&&tab[0]<=(tab[2]/2)&&tab[0]<=(tab[3]/2)) cout<<"A";
else
if(tab[3]>=2*tab[1]&&tab[3]>=2*tab[2]&&tab[3]>=2*tab[0]) cout<<"D";
else
if(tab[3]<=(tab[1]/2)&&tab[3]<=(tab[2]/2)&&tab[3]<=(tab[0]/2)) cout<<"D";
else
if(tab[0]>=2*tab[1]&&tab[0]>=2*tab[2]&&tab[0]>=2*tab[3]) cout<<"A";
else
if(tab[1]<=(tab[0]/2)&&tab[1]<=(tab[2]/2)&&tab[1]<=(tab[3]/2)) cout<<"B";
else
if(tab[1]>=2*tab[3]&&tab[1]>=2*tab[2]&&tab[1]>=2*tab[0]) cout<<"B";
else
if(tab[2]<=(tab[1]/2)&&tab[2]<=(tab[0]/2)&&tab[2]<=(tab[3]/2)) cout<<"C";
else
if(tab[2]>=2*tab[1]&&tab[2]>=2*tab[3]&&tab[2]>=2*tab[0]) cout<<"C";
else
cout<<"A";
return 0;
}