Блог пользователя Gerald

Автор Gerald, 12 лет назад, По-русски

Доброго времени суток, друзья!

Сегодня состоится очередной рейтинговый раунд Codeforces для участников из Div. 2 и внезачетный раунд для остальных участников. Как и в прошлый раунд Div. 2 only, этот раунд подготовлен командой из трех человек: NALPPolichka и Gerald. Традиционно, мы выражаем огромную благодарность за помощь в подготовке раунда и переводе задач Артему Рахову (RAD), Марии Беловой (Delinur) и Михаилу Мирзаянову (MikeMirzayanov). 

Распределение баллов за задачи: 500-1000-1500-2000-2500

Высокого рейтинга вам и удовольствия от решения задач! :)

UPD: Разбор задач

  • Проголосовать: нравится
  • +145
  • Проголосовать: не нравится

»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Всем удачи!
Надеюсь, я стану фиолетовым!!!
»
12 лет назад, # |
Rev. 2   Проголосовать: нравится -26 Проголосовать: не нравится

Сәттілік !

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Рахмет!
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +30 Проголосовать: не нравится
    "Рахмет" на башкирском и татарском "Спасибо", товарищи, не думайте, что это иноязычный мат!
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +15 Проголосовать: не нравится
      и на казахском тоже =)
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +12 Проголосовать: не нравится
      А "Сәттілік" это "Удачи!"
      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится +16 Проголосовать: не нравится
        Все догадались, что это не мат. Минуса если кто не понял за то, что большинство сообщества русскоязычное. Я же не пишу на украинском.
»
12 лет назад, # |
  Проголосовать: нравится -9 Проголосовать: не нравится
И снова те же авторы, что и в 101 раунде :)

Надеюсь, что сегодня задачи будут более похожими на обычный Div 2 раунд.
»
12 лет назад, # |
  Проголосовать: нравится -25 Проголосовать: не нравится
"last Div2 only round"?
»
12 лет назад, # |
  Проголосовать: нравится -8 Проголосовать: не нравится
Good luck for everyone!
»
12 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
Мне прошлый div2 only понравился, надеюсь понравится и этот)
»
12 лет назад, # |
  Проголосовать: нравится +9 Проголосовать: не нравится
Моё первое соревнование, надеюсь у меня всё получится. :-)
»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
На 5 минут отложили опять)
»
12 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится
another 5 minutes~?time to prepare~
»
12 лет назад, # |
  Проголосовать: нравится -10 Проголосовать: не нравится
Good Luck Everyone!!
hApPy CoDiNg !!
»
12 лет назад, # |
  Проголосовать: нравится -14 Проголосовать: не нравится
Oo boy! I am so going down big time.
»
12 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится
Как решать Е?
»
12 лет назад, # |
  Проголосовать: нравится +19 Проголосовать: не нравится
зачетный раунд
»
12 лет назад, # |
  Проголосовать: нравится -9 Проголосовать: не нравится

can anyone tell me where can i get the pretests input.?

i don't knw why my output is wrong.

»
12 лет назад, # |
  Проголосовать: нравится +41 Проголосовать: не нравится
"Вася хочет узнать, сколько именно ракетных шахт находится в Берляндии, чтобы затем продать эту информацию вражеским шпионам. Помогите Васе."
После прочтения закрыл задачу :D
»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Какая то хрень... 
По задаче С решение на делфи выводило правильный ответ, а после него какую то ошибку(причем на домашнем компьютере выводился только ответ а если через запуск то ещё и ошибка). Ну думаю ладно. Отправил тот же код на FPC. Претесты пройдены. Но тут я понял что рано радоваться. В fpc строка 255 символов. Переписал так что бы читалось не в строку а в массив. Тестирую через запуск. Выдает правильный ответ и ничего больше. Отсылаю. Вердикт не правильный ответ на первом тесте. Я не понимаю как. 
Извините за большое сообщение и отсутствие каких либо знаков препинаний. Меня просто эмоции переполняют 
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Попробуй ансистринг на фпц взять. 
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      проблема не в том что у меня что то при проверке не работает проблема в том что на сервере при проверке выдается неправильынй ответ хотя на вкладке запуск проверил выдается только правильный ответ и ничего больше
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      ансистринг прокатил, но уже разумеется не в зачет..
      вдвойне обидно из за того что непонятно в чем проблема моего решения.
  • »
    »
    12 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

    От ведь... Плакала моя C, не знал про ограничение на длину.

»
12 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
D Дейкстрой для разреженых графов должно заходить?
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    ну смотря, что ты там написал еще)
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Конечно.
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +2 Проголосовать: не нравится
      Сначала писал Дейкстру, затупил с отбором ответов на средине дороги, забил, начал писать какой-то дикий DFS, убил 25 минут, вернулся к Дейкстре, не успел докодить. Бывает.
      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится +2 Проголосовать: не нравится
        Не поверишь, тоже самое, бросил Дейкстру, начал писать ДФС, потом понял, что причем тут ДФС, кратчайшие же пути, опять вернулся к Дейкстре, 20 минут думал над этими шахтами посреди дороги, под конец примерно понял как, но написать уже не успел :\
»
12 лет назад, # |
  Проголосовать: нравится -15 Проголосовать: не нравится
Объясните зачем нужна регистрация на контест? По-моему совершенно не нужная вещь, ну вот опоздал я на 5 мин, открываю первую задачу, решаю, а отправить не могу т.к. не зарегистрирован  fail  (( 

Тогда либо вообще задачи не показывать если нет регистрации, либо разрешить регистрацию в процессе контеста.
»
12 лет назад, # |
  Проголосовать: нравится -25 Проголосовать: не нравится
Можно узнать, почему я был забанен? Мой ник ZHULIKI_I_VORY.
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится -32 Проголосовать: не нравится
    Я не понимаю, почему меня минусуют. Я всего лишь хочу понять, за что меня забанили? Я так старался, решал задачи, был на первом месте, и вдруг вижу белый экран. Сначала я подумал, что у меня опять отвалился интернет (в пятый раз за двадцать минут), пересоединился, попытался зайти и мне написали, что аккаунт заблокирован. Если я нарушил какое-то правило, то объясните, пожалуйста, какое именно?
    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +5 Проголосовать: не нравится

      Прошу прощения - перепутал ники. Прочитал пост MikeMirzayanov и осознал.

      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится -12 Проголосовать: не нравится

        если я не ошибаюсь, то ZHULIKI_I_VORY вообще первый, кто сдал задачу E

        так что списать он вряд ли у кого мог :)

        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Если у двух участников одинаковые решения, то банят обычно обоих)
          • »
            »
            »
            »
            »
            »
            12 лет назад, # ^ |
              Проголосовать: нравится +3 Проголосовать: не нравится
            ну хорошо, если так, а не по политическим соображениям =)
»
12 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Объясните, пожалуйста, как такое происходит. Я сдал решение по задаче за секунды перед последней минутой. Интернет немного подвис, и вернулся только после завершения контеста. Оказалось, что этот сабмит не приняли на проверку. Закономерный вопрос: что является временем посылки? Если момент принятия решения на проверку, то почему он? Если момент нажатия кнопки "Отправить!", то почему не проверилось мое решение?
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Временем посылки является время приема сервером твоего решения. И здесь многое зависит от скорости твоего интернета.

    А как можно определить момент нажатия кнопки "Отправить"? Для этого опять нужно передавать данные на сервер, т.е. опять многое зависит от твоего интернета.
    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      Можно отправлять время нажатия вместе с остальными данными.

      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        А время нажатия вы какое будете брать? Которое локально на компьютере стоит?
      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Тогда его можно вручную послать пост-запрос с нужным временем после окончания контеста. Если система не будет принимать посылки с временем отстоящим от текущего например даже на минуту, то  mynameis все равно бы не послал задачу например. Cf иногда и на 2-3 минуты зависает
        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          1) Хэшировать как-нибудь в JS. 
          2) JS обфусцировать
          3) Не принимать данные, которые приходят, например, позже, чем через [1,2,5] минут после конца.
»
12 лет назад, # |
  Проголосовать: нравится -26 Проголосовать: не нравится
Why is running the code on pretests important? The code should be ran only on the given sample inputs, for the following reasons :
1. I don't know what are the pretests, so that puts me at a disadvantage when hacking. People often use kludges to get their code working, which is usually not visible.
2. The number of solutions that can be hacked are reduced considerably.

I would like to know the possible reasons for including pretests that are not known to the contestants.
  • »
    »
    12 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +10 Проголосовать: не нравится

    If there's no pretest, one could easily create tons of account --> there would be a few of his accounts in his room. For the fake accounts just give only outputs for example tests, submit, and use the main account to hack his own fake accounts. After hacking himself, he repeats again and again, thus gaining thousands of points :)

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится -28 Проголосовать: не нравится
      Oh yes! I forgot the disadvantages of the system.
      But, it was hurtful to see that many people in my room had 2-3 WA's before submitting problem A.
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +24 Проголосовать: не нравится
      I think the main reason is: If there was no pretest, one could easily create a dummy account, submit an obvious wrong answer, locked it, read stronger coder's code to know the correct algorithm, code it, and get much more points.
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится -21 Проголосовать: не нравится
    my guess is that people could abuse this by having a dummy account and submitted a totally incorrect solution, and then hacking that dummy account with their 'actual' account. easy hacking points. having some pre-tests prevents this
»
12 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится
»
12 лет назад, # |
Rev. 3   Проголосовать: нравится +2 Проголосовать: не нравится

Обратите внимание, что длина строки p может быть больше длины строки s.
НУ ВОТ ПОЧЕМУ НЕ ЖИРНЫМ? =(
UPD Одна строчка и полное решение -_-
UPD2 А ведь мог быть 200, дурак что сказать =)

  • »
    »
    12 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +6 Проголосовать: не нравится

    Также =(

    Повезло, что я див1 =)

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Одна строчка - +80 мест и попадание в двадцатку. 
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      В моём случае с 200 на 614 и ранг Специалист в награду =)
      Обидно, что поделаешь =\
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится
    Из таких вещей рейтинг на CF и складывается
»
12 лет назад, # |
Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

На вкладке запуск мое решение выдает правильный ответ а при тестировании выдает уже другой ответ. Как так может быть? 

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Ну так eoln 2 символа, наверное
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Я не знаю. но почему разные результаты то. Тесты ведь одинаковые
      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Разные опции компиляции, очевидно же
        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Ну тогда это не правильно. Вкладка запуск я думаю должна действовать также как и систесты
          • »
            »
            »
            »
            »
            »
            12 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Еще вариант - при запуске перевод строки интерпретируется как один символ, а в систестах - как 2.
            Еще вариант - ты выбирал разные компиляторы (Delphi и FPC).

            А лучше не писать таких опасных конструкций.
            • »
              »
              »
              »
              »
              »
              »
              12 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
               да насчет лучше не писать это правда. 
              такую штуку пришлось писать потому что на делфи не прокатывало решение а я не знал что в паскале есть ansistring.
              компиляторы одинаковые выбирал.

»
12 лет назад, # |
Rev. 2   Проголосовать: нравится -53 Проголосовать: не нравится

Если честно, ужасный контекст... мегадлинные условия, там где это просто не нужно. В итоге, С не стал решать, так как много букв, очень много. потом уже когда за 5 минут до конца прочитал понял что все просто. Вопрос: ну зачем писать условия настолько строк? Особенно, если решение занимает 5-8 строк. В итоге весь интерес пропадает. Это относится  ко всем задачам.

P.S. я доволен, так как впервые знал как все задачи решать. Но читать их удовольствия не составило, это не книга и блог

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +33 Проголосовать: не нравится
    >>  В итоге, С не стал решать, так как много букв, очень много. 
    Разумеется много. До 105 символов каждая строка.
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +10 Проголосовать: не нравится
    да ладно вам, не такие уж и длинные условия
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +25 Проголосовать: не нравится
    По-моему, это один из лучших div-2 контестов. Задачки очень понравились.
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +6 Проголосовать: не нравится
      да да, о чем свидетельствует практически отсутствие комментариев с возмущениями
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Да и тестирование почему-то почти мгновенным было. Может сервера новые?
»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
I just learned that the C hypot function is too slow.
I got TLE while using it but it passed when I wrote my own hypot.
»
12 лет назад, # |
Rev. 2   Проголосовать: нравится +2 Проголосовать: не нравится

bad luck!

when I want to submit D in last 1 minute my D'link modem freezed and after contest I got first accept.
:(
»
12 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Any hints about D and E?
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Solve D using Dijkstra
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Although I have not submited it because could not implement Dijkstra and so am not sure about it  but my logic for D is:
    Apply Dijkstra to get the "key" (shortest distance) to each vertex.If key ==L then c++;. Then examine each edge.if starting vertex of this edge key is less than "L" and st.key+edge weight >L then there exist a point in this edge with distance exactly L,so c++.Similarly if end.key <L and end.key+edge weight>L then another point provided st.key!=end.key because then you would be adding the same point on the edge twice.Simply run this for all edges .
    Can anyone provide me link where I can get java implementations of all important and useful algorithms .It will be very useful during contests
    • »
      »
      »
      7 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      actually your logic is slightly wrong , it should be-

      st.key + edge weight > l && end.key + distance to Point from end > L

      where, distance to Point from end = edge weight — (L — st.key)

»
12 лет назад, # |
  Проголосовать: нравится +11 Проголосовать: не нравится
Спасибо за контест =)
»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Мое решение задачи D с сегодняшнего контеста на Delphi получило TL 62. 

В дорешивании я отправил заглушку, что если n и m соответсвуют 62 тесту, то после считывания данных программу нужно завершить. При этом решение все равно получает TL, т.е. даже не успевает считать данные и кинуть их в двумерный массив.

Разве это нормально?
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    > задачи D
    >
    двумерный массив

    Разве это нормально?
    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Я имел ввиду динамический двумерный, очевидно, иначе бы не дошла до 62 теста-то.
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      у вас то динамический он, вообще надо смотреть код товарища AguL

      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Я его код переписал на паскале и он, не поверите, зашёл ;)
        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          верю, вы то код сдали на fpc, а agul на delphi... конечно почему так произошло, другой вопрос
          • »
            »
            »
            »
            »
            »
            12 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            На FPC  у меня тоже прошло. 
            Delphi-то не скриптовый язык, единственное, что я точно знаю, в Delphi работа с int64 происходит намного медленнее, чем во Free Pascal, но работа с longint - быстрее.
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    возможно, это происходит т.к. размер матрицы большой очень? и вообще, можете код показать?
»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А это я что-то не понимаю, или просто система тормознуто обновляет звания? Просто у меня 1714, а пишут, что я эксперт...
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Да, скоро обновят - я вот теперь специалист должен быть =(
»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Hi there,

I wanted to solve problem C with the idea most contestants did. To have an array of size 26 for S & P and then processing it. My big mistake was that I taught it would get TLE. Can someone explain me the time of this idea???

Tnx 
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +4 Проголосовать: не нравится
    The time is O(|S| * Aplhabet). Because you take |T| - |S| strings and check them with time O(Alphabet).

    So time is O((|T| - |S|) * Aplhabet) = O(|S| * Alphabet).

    You can get TL if you work with strings and get new string using substr, delete or something other, that works O(|S|).
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    O(27*l) where l->length of string.
    Will pass in 2s.
»
12 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

The bruteforce solution of problem B is 8,000,000 as I think.
However, I've failed in test #27 (TLE).

Can any body check it for me please? It's so simple and straightforward.

http://codeforces.com/contest/144/submission/1077198

Thanks

»
12 лет назад, # |
  Проголосовать: нравится -11 Проголосовать: не нравится
Did anyone misinterpreted problem statement C like me? Take look at here.
»
12 лет назад, # |
  Проголосовать: нравится +7 Проголосовать: не нравится
Почему до сих пор безопасный режим включен? Разве ещё не вся обработка контеста закончилась?
»
12 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

Cool contest!

And I realized that I should learn how to read, because I was trying to solve different problems! :(

I am still wondering, what is the best way to solve slightly modified version of task B: let's assume that generals are sitting not only on the border, but also inside rect? 

»
12 лет назад, # |
Rev. 3   Проголосовать: нравится +6 Проголосовать: не нравится

Прикольно. Рейтинг стал 1720.

В разделе "Соревнования" надпись - "Новое звание - Эксперт"

UPD. Уже исправили
»
12 лет назад, # |
  Проголосовать: нравится +15 Проголосовать: не нравится
I don't think that time-limits for solutions for problem B written in Python were fair. I got TLE for my submission in Python during contest (http://codeforces.com/contest/144/submission/1077165) and pretty much the same logic written in C++ got accepted later (http://codeforces.com/contest/144/submission/1082838).
»
12 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

игнор

»
12 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится
Лог задача 144E - Соревнование учатника SamanSami:
18.01.2012 21:01  Неудачная попытка взлома участником * aropan
18.01.2012 21:02  Решение взломано участником * KADR

Я чувствовал что что-то не так....
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Так контест же на 5 минут позже начался, поэтому на 5 минут позже закончился, или я неправильно что-то понял?
»
6 лет назад, # |
Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

What is the correct output for

4 5 1
1 3 1
2 3 16
1 2 1
4 2 1
1 4 1
4

I think it should be 3 but AC codes gave 2.Am I wrong?

UPD : Got it misunderstood the question.

»
18 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

https://steamcommunity.com/app/1213210/discussions/0/2290590708544873900/

"SILOS NEEDED" Call me a noob or whatever, but how do I stop the announcer from shouting this at me every 3 seconds?

INSUFFICIENT FUNDS

because the people who are sitting on the money supplies are stupid and they won't yield. Therefore, VLADIMIR PUTIN targets Ukrainian infrastructure.