#include <iostream>
#include <fstream>
#include <strstream>
#include <cctype>
#include <string>
//кол-во слов в строке
int count_words(const char* s){
int n = 0;
while(*s){
while(*s && ! isalnum(*s))
++s;
if(isalnum(*s)){
++n;
while(isalnum(*s))
++s;
}
}
return n;
}
//удаление слова
void remove_avg(std::string& s){
int inx;
int cnt = count_words(s.c_str());
if(cnt <= 2)
return;
cnt = (cnt + 2) / 3;
inx = 0;
const char* i, *p = s.c_str();
while(*p){
while(*p && ! isalnum(*p))
++p;
if(isalnum(*p)){
i = p + 1;
while(isalnum(*i))
++i;
if(inx++ >= cnt){
s.erase((p - s.c_str()), i - p);
break;
}
p = i;
}
}
}
//удаление среднего слова
void output_rem(std::ostream& _o, std::istream& _i){
std::string l;
while((! _i.eof()) && (! _i.fail())){
std::getline(_i, l);
if(l.length() > 0){
remove_avg(l);
_o << l << std::endl;
} else
_o << std::endl;
}
_o.flush();
}
int main(void){
char s[] = "fox dog bat cat wolf bea cow\r\n"\
"AA BB CC DD EE FF\r\n"\
"A1 B2 C3 D4 C5";
std::istrstream ist(s);
output_rem(std::cout, ist);
/* вот работать с файлом
std::ifstream fin("input.txt");
std::ofstream fout("output.txt");
output_rem(fout, fin);
fin.close();
fout.close();
*/
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHN0cnN0cmVhbT4KI2luY2x1ZGUgPGNjdHlwZT4KI2luY2x1ZGUgPHN0cmluZz4KCgovL9C60L7Quy3QstC+INGB0LvQvtCyINCyINGB0YLRgNC+0LrQtQppbnQgY291bnRfd29yZHMoY29uc3QgY2hhciogcyl7CglpbnQgbiA9IDA7Cgl3aGlsZSgqcyl7CgkJd2hpbGUoKnMgJiYgISBpc2FsbnVtKCpzKSkKCQkJKytzOwoJCWlmKGlzYWxudW0oKnMpKXsKCQkJKytuOwoJCQl3aGlsZShpc2FsbnVtKCpzKSkKCQkJCSsrczsKCQl9Cgl9CglyZXR1cm4gbjsKfQoKLy/Rg9C00LDQu9C10L3QuNC1INGB0LvQvtCy0LAKdm9pZCByZW1vdmVfYXZnKHN0ZDo6c3RyaW5nJiBzKXsKCWludCBpbng7CglpbnQgY250ID0gY291bnRfd29yZHMocy5jX3N0cigpKTsKCWlmKGNudCA8PSAyKQoJCXJldHVybjsKCgljbnQgPSAoY250ICsgMikgLyAzOwoJaW54ID0gMDsKCgljb25zdCBjaGFyKiBpLCAqcCA9IHMuY19zdHIoKTsKCXdoaWxlKCpwKXsKCQl3aGlsZSgqcCAmJiAhIGlzYWxudW0oKnApKQoJCQkrK3A7CgoJCWlmKGlzYWxudW0oKnApKXsKCQkJaSA9IHAgKyAxOwoJCQl3aGlsZShpc2FsbnVtKCppKSkKCQkJCSsraTsKCgkJCWlmKGlueCsrID49IGNudCl7CgkJCQlzLmVyYXNlKChwIC0gcy5jX3N0cigpKSwgaSAtIHApOwoJCQkJYnJlYWs7CgkJCX0KCQkJcCA9IGk7CgkJfQoJfQp9CgoKLy/Rg9C00LDQu9C10L3QuNC1INGB0YDQtdC00L3QtdCz0L4g0YHQu9C+0LLQsAp2b2lkIG91dHB1dF9yZW0oc3RkOjpvc3RyZWFtJiBfbywgc3RkOjppc3RyZWFtJiBfaSl7CglzdGQ6OnN0cmluZyBsOwoJd2hpbGUoKCEgX2kuZW9mKCkpICYmICghIF9pLmZhaWwoKSkpewoJCXN0ZDo6Z2V0bGluZShfaSwgbCk7CgkJaWYobC5sZW5ndGgoKSA+IDApewoJCQlyZW1vdmVfYXZnKGwpOwoJCQlfbyA8PCBsIDw8IHN0ZDo6ZW5kbDsKCQl9IGVsc2UKCQkJX28gPDwgc3RkOjplbmRsOwoJfQoJX28uZmx1c2goKTsKfQoKCgppbnQgbWFpbih2b2lkKXsKCWNoYXIgc1tdID0gImZveCBkb2cgYmF0IGNhdCB3b2xmIGJlYSBjb3dcclxuIlwKCSAgICAgICAgICAgIkFBIEJCIENDIEREIEVFIEZGXHJcbiJcCgkgICAgICAgICAgICJBMSBCMiBDMyBENCBDNSI7CglzdGQ6OmlzdHJzdHJlYW0gaXN0KHMpOwoJb3V0cHV0X3JlbShzdGQ6OmNvdXQsIGlzdCk7CgovKiAg0LLQvtGCINGA0LDQsdC+0YLQsNGC0Ywg0YEg0YTQsNC50LvQvtC8CglzdGQ6Omlmc3RyZWFtIGZpbigiaW5wdXQudHh0Iik7CglzdGQ6Om9mc3RyZWFtIGZvdXQoIm91dHB1dC50eHQiKTsKCW91dHB1dF9yZW0oZm91dCwgZmluKTsKCWZpbi5jbG9zZSgpOwoJZm91dC5jbG9zZSgpOwoqLwoJcmV0dXJuIDA7Cn0K