Nic nie knocisz, sed nie jest dostępny na SPOJu8 (póki co ).
Nie napisałem, żebyś usuwał spacje, ale żebyś właśnie nie usuwał żadnych dodatkowych. No ale może źle się wyraziłem.
Mój program dla powyższego testu wypisuje pustą linię, bo komentarze widocznie jakoś ją zostawiają. Nie dostaję jednak maxa, tylko 9/12, ale kiedyś też nie wypisywałem nic i miałem sporo mniej punktów. Tak więc spróbuj dostosować się do tego testu, a byś może zostaniesz zaskoczony.
No to sporo masz roboty, nie obijasz się a w HSPL nie bierzesz udziału? Powalcz tak na wszystkie fronty
To ja na przyszłość (bo nie jest to coś bardzo pilnego) też byłbym wdzięczny za jakieś jeszcze testy, póki co mam tam 7/12, ale może z dodatkowymi wskazówkami dałoby radę na max, bo tak ładnie wygląda statystyka z zaliczonymi zadaniami danego typu na maksimum punktów
Też biorę, ale nie oszukujmy się, dobrze będzie jak w OI przejdę do 2giego etapu.
HSPL jest w sumie o tyle łatwiejszy, że można zobaczyć, ile testów przechodzi program i ma się nieskończoną ilość zgłoszeń, ale tam z kolei biorą udział programiści z całego świata, więc też marne szanse na wygraną. No ale chodzi, żeby się dokształcić i sobie poćwiczyć.
A Ty bierzesz udział w OI i HSPLu? Czy matura za bardzo Cię pochłania.
Mam mały kłopot. Niby dla każdej z prób kod działa poprawnie, ale sędzia mi go odrzuca. Nie przechodzi ani jeden test
Kod:
#include <iostream>
using namespace std;
void getln(string &line, string &prev)
{
prev = line;
getline(cin, line);
}
string line, pline;
int textS=0;
bool bool1 = false;
main()
{
while(textS<50000)
{
point1:
string content;
getln(line, pline);
int len = line.length();
if(pline == line)
{
textS+=2;
continue;
}
for(int i = 0; i<len; i++)
{
if(bool1 == true) goto point2;
if(line[i]==34)
{
#define INC_I if(i!=line.length()-1)i++;
cout<<line[i];
INC_I
textS++;
while(!(line[i]==34 && line[i-1]!=92))
{
cout<<line[i];
i++;
textS++;
if(i==line.length()-1)break;
}
cout<<line[i];
}
else if(line[i]==39)
{
cout<<line[i];
INC_I
textS++;
while(!(line[i]==39 && line[i-1]!=92))
{
cout<<line[i];
i++;
textS++;
if(i==line.length()-1)break;
}
cout<<line[i];
}
else
{
if(line[i]==47 && line[i+1]==42)
{
if(i>len-2)
{
getln(line, pline);
int len = line.length();
i=0;
}
else i+=2;
textS+=2;
point2:
if(!(line[i]==42 && line[i+1]==47))
{
while(!(line[i]==42 && line[i+1]==47))
{
i++; textS++;
if(i==len)
{
bool1 = true;
goto point1;
}
}}
i++;
textS++;
bool1 = false;
continue;
}
else if(line[i]==47 && line[i+1]==47)
{
while(line[len-1]==92)
{
getln(line, pline);
len = line.length();
}
break;
}
cout<<line[i];
}
content.push_back(line[i]);
}
if(!content.empty())cout<<endl;
}
}
Przyklad:
Input:
printf("");
printf("// ");
printf(" /* */ ");
printf("\n");
printf(" // \n /* \n */ ");
cout<<" Bla // Bla Bla\n";
cout<<" Bla /* Bla // */ // Bla"<<endl;
/ ala/ //alka
/* / ala/ // */
/ala*/
/ala*/* ala *./ */
// komentarz
// komentarz2 \
dalszy komentarzyk
perl/*/*/*///*//*//*//**//*//*//*//
/*/* /* ///*//*//*//**//*//*//*//*/
komentarz // czy nie komentarz
*//.*/.**./
/*hjfdsjhf
sdfjh
dsgfj
8?
/
8
**
//
*/
Output:
printf("");
printf("// ");
printf(" /* */ ");
printf("\n");
printf(" // \n /* \n */ ");
cout<<" Bla // Bla Bla\n";
cout<<" Bla /* Bla // */ // Bla"<<endl;
/ ala/
/ala*/
/ala*
perl*
komentarz
*
Czy macie może jakieś drobne wskazówki jak ulepszyć kodzik, żeby ostatni test został zaliczony?
https://ideone.com/sfriD610
Suggested Topics
Topic | Category | Replies | Views | Activity |
---|---|---|---|---|
Username Invalid problem | Online Judge System | 0 | 104 | Apr 14 |
Next Palindrome exception | Online Judge System | 1 | 120 | Mar 26 |