Witam. Rozwiązałem zadanie PP0504B na dwa sposoby, zwracające poprawnie wyniki dla dowolnych danych, łącznie z tymi podanymi w zadaniu, ale ciągle oznacza moje zadanie jako zwracające nieprawidłowy wynik. Co jest nie tak?
W C++;
#include <iostream>
#include <cstring>
using namespace std;
#define T_SIZE 1001
char* string_merge(char *, char *);
int main(){
int t,n;
char S1[T_SIZE], S2[T_SIZE], *S;
cin >> t; /* wczytaj liczbę testów */
cin.getline(S1,T_SIZE);
while(t){
cin.getline(S1,T_SIZE,' ');
cin.getline(S2,T_SIZE);
S=string_merge(S1,S2);
cout << S << endl;
//delete[] S;
t--;
}
return 0;
}
char* string_merge(char* s1, char* s2) {
char merged[T_SIZE * 2 - 1];
int j = 0;
for(int i = 0; i < T_SIZE; i++) {
if(!s1[i] || !s2[i]) {
break;
}
merged[j] = s1[i];
j++;
merged[j] = s2[i];
j++;
}
merged[j] = '\0';
return merged;
}
Zrobiłem to samo nawet w PHP i dalej rzekomo nieprawidłowe rozwiązanie;
<?php
$t = (int)fgets(STDIN);
for($i = 0; $i<$t; $i++) {
$line = fgets(STDIN);
$parts = explode(' ', $line);
$n = min(strlen($parts[0]), strlen($parts[1]));
$merged = "";
for($j = 0; $j < $n; $j++) {
$merged .= $parts[0][$j];
$merged .= $parts[1][$j];
}
echo trim($merged).PHP_EOL;
}