/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
r.wordAppend();
r.wordEnd();
// r.readAndSend();
String readMe
= "р ых. ых, ах sах gых укусила ах ыыыыыы ых "; r.foundIndex(readMe);
}
}
{
{
int sum = 0;
try {
int ch;
for (;;) {
ch = br.read();
if (ch == -1) {
break;
}
allText
+= String.
valueOf((char) ch
);
fragment
+= String.
valueOf((char) ch
);
sum++;
if (sum % 1000 == 0) {
rr.foundIndex("р ых. ых, ах sах gых укусила ах ыыыыыы ых ");
// r.foundIndex(fragment);
// System.out.println(fragment);
fragment = "";
}
}
br.close();
}
System.
out.
println("tshtsht");
e.printStackTrace();
}
}
void wordEnd()
{
wordEnd.add("ых");
wordEnd.add("ах");
wordEnd.add("ла");
wordEnd.add("ся");
}
ArrayList
<String
> wordAppend
= new ArrayList();
void wordAppend()
{
wordAppend.add(" ");
wordAppend.add(".");
wordAppend.add(",");
}
{
int addWordCount = 0;
int countChangeEnd = 0;
int goEnd = 0;
int countArrayEnd = 0;
for (int indexEnd = 0;; indexEnd += 1) {
indexEnd = readMe.indexOf(wordEnd.get(countArrayEnd) + wordAppend.get(countChangeEnd), indexEnd); // окончания + . или пробел
if (indexEnd == -1) {
if (countArrayEnd + 1 == wordEnd.size()) {
if (countChangeEnd + 1 == wordAppend.size()) {
break;
}
countArrayEnd = 0;
countChangeEnd++;
continue;
}
countArrayEnd++;
continue;
}
int indexStart = readMe.lastIndexOf(" ", indexEnd);
System.
out.
println(indexStart
+ " // " + indexEnd
); if (wordEnd.get(countArrayEnd).equals("ла") || wordEnd.get(countArrayEnd).equals("ли") || wordEnd.get(countArrayEnd).equals("ло")) {
System.
out.
println(readMe.
substring(indexStart
+ 1, indexEnd
+ wordEnd.
get(countArrayEnd
).
length() - 1)); }
else {
System.
out.
println(readMe.
substring(indexStart
+ 1, indexEnd
+ wordEnd.
get(countArrayEnd
).
length())); }
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJICBSZWFkZXIgciA9IG5ldyBSZWFkZXIoKTsKICAgICAgICByLndvcmRBcHBlbmQoKTsKICAgICAgICByLndvcmRFbmQoKTsKICAgICAgICAvLyAgICAgICAgICByLnJlYWRBbmRTZW5kKCk7CiAgICAgICAgU3RyaW5nIHJlYWRNZSA9ICLRgCDRi9GFLiDRi9GFLCDQsNGFIHPQsNGFIGfRi9GFINGD0LrRg9GB0LjQu9CwINCw0YUg0YvRi9GL0YvRi9GLINGL0YUgIjsKICAgICAgICByLmZvdW5kSW5kZXgocmVhZE1lKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiIpOwoKICAgICAgfQp9CgpjbGFzcyBSZWFkZXIKewogICAgU3RyaW5nIGFsbFRleHQgPSAiIjsKCiAgICB2b2lkIHJlYWRBbmRTZW5kKCkgdGhyb3dzIElPRXhjZXB0aW9uCiAgICAgIHsKICAgICAgICBSZWFkZXIgcnIgPSBuZXcgUmVhZGVyKCk7CiAgICAgICAgU3RyaW5nIGZyYWdtZW50ID0gIiI7CiAgICAgICAgaW50IHN1bSA9IDA7CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihuZXcgRmlsZUlucHV0U3RyZWFtKCJSLnR4dCIpLCAiQ3AxMjUxIikpOwoKICAgICAgICAgICAgaW50IGNoOwoKICAgICAgICAgICAgZm9yICg7OykgewoKICAgICAgICAgICAgICAgIGNoID0gYnIucmVhZCgpOwogICAgICAgICAgICAgICAgaWYgKGNoID09IC0xKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBhbGxUZXh0ICs9IFN0cmluZy52YWx1ZU9mKChjaGFyKSBjaCk7CgogICAgICAgICAgICAgICAgZnJhZ21lbnQgKz0gU3RyaW5nLnZhbHVlT2YoKGNoYXIpIGNoKTsKCiAgICAgICAgICAgICAgICBzdW0rKzsKICAgICAgICAgICAgICAgIGlmIChzdW0gJSAxMDAwID09IDApIHsKCiAgICAgICAgICAgICAgICAgICAgcnIuZm91bmRJbmRleCgi0YAg0YvRhS4g0YvRhSwg0LDRhSBz0LDRhSBn0YvRhSDRg9C60YPRgdC40LvQsCDQsNGFINGL0YvRi9GL0YvRiyDRi9GFICIpOwogICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICByLmZvdW5kSW5kZXgoZnJhZ21lbnQpOwogICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZnJhZ21lbnQpOwogICAgICAgICAgICAgICAgICAgIGZyYWdtZW50ID0gIiI7CgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQoKICAgICAgICAgICAgYnIuY2xvc2UoKTsKICAgICAgICB9CgogICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInRzaHRzaHQiKTsKCiAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CiAgICAgICAgfQoKICAgICAgfQogICAgQXJyYXlMaXN0PFN0cmluZz4gd29yZEVuZCA9IG5ldyBBcnJheUxpc3QoKTsKCiAgICB2b2lkIHdvcmRFbmQoKQogICAgICB7CiAgICAgICAgd29yZEVuZC5hZGQoItGL0YUiKTsKICAgICAgICB3b3JkRW5kLmFkZCgi0LDRhSIpOwogICAgICAgIHdvcmRFbmQuYWRkKCLQu9CwIik7CiAgICAgICAgd29yZEVuZC5hZGQoItGB0Y8iKTsKCiAgICAgIH0KICAgIEFycmF5TGlzdDxTdHJpbmc+IHdvcmRBcHBlbmQgPSBuZXcgQXJyYXlMaXN0KCk7CgogICAgdm9pZCB3b3JkQXBwZW5kKCkKICAgICAgewogICAgICAgIHdvcmRBcHBlbmQuYWRkKCIgIik7CiAgICAgICAgd29yZEFwcGVuZC5hZGQoIi4iKTsKICAgICAgICB3b3JkQXBwZW5kLmFkZCgiLCIpOwogICAgICB9CgogICAgdm9pZCBmb3VuZEluZGV4KFN0cmluZyByZWFkKSB0aHJvd3MgSU9FeGNlcHRpb24vLyDQv9C+0LvRg9GH0LDRgtGMINGB0YLRgNC+0LrRgwogICAgICB7CgogICAgICAgIGludCBhZGRXb3JkQ291bnQgPSAwOwogICAgICAgIGludCBjb3VudENoYW5nZUVuZCA9IDA7CiAgICAgICAgaW50IGdvRW5kID0gMDsKICAgICAgICBpbnQgY291bnRBcnJheUVuZCA9IDA7CiAgICAgICAgCiAgICAgICAgU3RyaW5nIHJlYWRNZSA9IHJlYWQ7CgogICAgICAgIGZvciAoaW50IGluZGV4RW5kID0gMDs7IGluZGV4RW5kICs9IDEpIHsKCiAgICAgICAgICAgIGluZGV4RW5kID0gcmVhZE1lLmluZGV4T2Yod29yZEVuZC5nZXQoY291bnRBcnJheUVuZCkgKyB3b3JkQXBwZW5kLmdldChjb3VudENoYW5nZUVuZCksIGluZGV4RW5kKTsgLy8g0L7QutC+0L3Rh9Cw0L3QuNGPICsgLiDQuNC70Lgg0L/RgNC+0LHQtdC7IAoKICAgICAgICAgICAgaWYgKGluZGV4RW5kID09IC0xKSB7CgogICAgICAgICAgICAgICAgaWYgKGNvdW50QXJyYXlFbmQgKyAxID09IHdvcmRFbmQuc2l6ZSgpKSB7CgogICAgICAgICAgICAgICAgICAgIGlmIChjb3VudENoYW5nZUVuZCArIDEgPT0gd29yZEFwcGVuZC5zaXplKCkpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgY291bnRBcnJheUVuZCA9IDA7CiAgICAgICAgICAgICAgICAgICAgY291bnRDaGFuZ2VFbmQrKzsKCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgY291bnRBcnJheUVuZCsrOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGludCBpbmRleFN0YXJ0ID0gcmVhZE1lLmxhc3RJbmRleE9mKCIgIiwgaW5kZXhFbmQpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaW5kZXhTdGFydCArICIgLy8gIiArIGluZGV4RW5kKTsKICAgICAgICAgICAgaWYgKHdvcmRFbmQuZ2V0KGNvdW50QXJyYXlFbmQpLmVxdWFscygi0LvQsCIpIHx8IHdvcmRFbmQuZ2V0KGNvdW50QXJyYXlFbmQpLmVxdWFscygi0LvQuCIpIHx8IHdvcmRFbmQuZ2V0KGNvdW50QXJyYXlFbmQpLmVxdWFscygi0LvQviIpKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocmVhZE1lLnN1YnN0cmluZyhpbmRleFN0YXJ0ICsgMSwgaW5kZXhFbmQgKyB3b3JkRW5kLmdldChjb3VudEFycmF5RW5kKS5sZW5ndGgoKSAtIDEpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihyZWFkTWUuc3Vic3RyaW5nKGluZGV4U3RhcnQgKyAxLCBpbmRleEVuZCArIHdvcmRFbmQuZ2V0KGNvdW50QXJyYXlFbmQpLmxlbmd0aCgpKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICB9Cn0K