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

Автор FelixArg, 4 месяца назад, перевод, По-русски

Neapolis University Pafos

Привет, Codeforces!

Благодаря поддержке Neapolis University Pafos, продолжается серия образовательных раундов.

Во 09.06.2026 17:35 (Московское время) состоится Educational Codeforces Round 191 (Rated for Div. 2).

Этот раунд будет рейтинговым для участников с рейтингом менее 2100. Соревнование будет проводиться по немного расширенным правилам ICPC. Штраф за каждую неверную посылку до посылки, являющейся полным решением, равен 10 минутам. После окончания раунда будет период времени длительностью в 12 часов, в течение которого вы можете попробовать взломать абсолютно любое решение (в том числе свое). Причем исходный код будет предоставлен не только для чтения, но и для копирования.

Вам будет предложено 6 или 7 или 67 задач на 2 часа. Мы надеемся, что вам они покажутся интересными.

Раунд основан на задачах Чемпионата по алгоритмическому программированию «VrnCode-2026». Если вы участвовали в этом соревновании, то воздержитесь от участия в раунде.

Задачи были придуманы и подготовлены Иваном BledDest Андросовым и мной. Также большое спасибо Михаилу MikeMirzayanov Мирзаянову за системы Polygon и Codeforces.

Кроме того, мы хотим поблагодарить тестеров задач: ashmelev, awoo, FairyWinx, Alenochka, basalov_yurij, robotolev, dariasaligina, Matrosk1n, Fucking_Specialist, Ya-chmen, Loller4ik, adedalic, shnirelman, pusheen_1024, _OCHEPYATKA_, paomur, nik1998, fisym, Galina_Basalova. Спасибо за помощь в подготовке контеста!

Наши друзья из Neapolis University Pafos передают важное срочное сообщение:

ПОСЛЕДНИЙ ШАНС: Осталось всего 2 дня, чтобы подать заявку на CSAI!

Финальный этап приёма на программу бакалавриата BSc in Computer Science and Artificial Intelligence в Neapolis University Pafos закрывается послезавтра.

Крайний срок подачи заявок: 9 июня 2026 года.

Не упустите шанс подать заявку и получить одну из 40 стипендий от фонда JetBrains, которые покрывают:

  • полную стоимость обучения

  • проживание

  • ежемесячную стипендию

  • визовую поддержку

Подайте заявку прямо сейчас и обеспечьте себе место!

Обязательный вступительный тест состоится 14 июня 2026 года.

Желаем удачи в раунде и успешных решений!

UPD: Разбор опубликован

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

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

Автокомментарий: текст был обновлен пользователем chillingjellyfish (предыдущая версия, новая версия, сравнить).

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

Auto comment: topic has been updated by chillingjellyfish (previous revision, new revision, compare).

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

i love carrots

»
4 месяца назад, скрыть # |
 
Проголосовать: нравится +7 Проголосовать: не нравится

Let the meme die peacefully.

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

I see what u did there

»
4 месяца назад, скрыть # |
Rev. 2  
Проголосовать: нравится +6 Проголосовать: не нравится

FelixArg 67 problems in 2 hours to solve......

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

W-what did he s-say...

»
4 месяца назад, скрыть # |
 
Проголосовать: нравится +29 Проголосовать: не нравится

Wow 67 problems that's not a good choice

»
4 месяца назад, скрыть # |
 
Проголосовать: нравится +16 Проголосовать: не нравится

67 problems,plz

»
4 месяца назад, скрыть # |
 
Проголосовать: нравится +9 Проголосовать: не нравится

So 67 problems in 2 hours? Finally a real challenge for Tourist

»
4 месяца назад, скрыть # |
Rev. 2  
Проголосовать: нравится +32 Проголосовать: не нравится

What if there are actually 67 problems?

You could choose ξ for instance.

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

actually, i think it will be 67 problems

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

It's not a good idea to have 67 problems in a round:)

»
4 месяца назад, скрыть # |
 
Проголосовать: нравится +37 Проголосовать: не нравится

$$$6 | 7 | 67 = 71$$$

This means that we are going to have 71 problems

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

67 problems in 2 hours

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

So what if there are 67 problems?

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

You will be given 6 or 7 or 67 problems and 2 hours to solve them. If there are 67 problems, avg time = 2*60/67 ~= 1.79 min per problem... 6767676767676

»
4 месяца назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

It's interesting, but I still love China.

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

67 problems? Do you really think it's a good choice? -_-

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

    вместо того чтобы блокать просто ответь

    я хотел написать что у тебя нет доказательств про курсы питон,с++,2 место в олимпиаде и т.д. также если заедает enter то почему в лёгких задачах по типу A,B у тебя всё норм, а в задачах другой сложности такие сильный подозрения на ИИ. Я собрал где-то 10 посылок с 5 последних раундов и в скором времени хочу выложить пост по поводу этого. Надеюсь на бан явного читера. хаххахахах сидит на середине алгоритмов по питону и говорит полный курс питона и с++.Я знаю о тебе больше чем ты думаешь

»
4 месяца назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

As a glumbus, hope my computer doesn't set on fire this round

edit: It didn't :D

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

How u guys check the contest problems rating after the contest? is there any site or something?

»
4 месяца назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

67 to solve in 2 hours that in more than 1 problem we should solve every minute

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

67 Problems in 2 hrs...

Never thought CF had rapid fire coding rounds too

»
4 месяца назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

Editorial will be released in 67 parts, one for each problem.

»
4 месяца назад, скрыть # |
 
Проголосовать: нравится +20 Проголосовать: не нравится

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

I'm glad I could participate in testing some of these problems. The problems are really good and interesting. Good luck to everyone in this Educational Div. 2!

»
4 месяца назад, скрыть # |
 
Проголосовать: нравится +7 Проголосовать: не нравится

Sorry, i voted for negative to hold +**67**!

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

67

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

how 67 problems in 2 hours??

  • »
    »
    3 месяца назад, скрыть # ^ |
     
    Проголосовать: нравится +4 Проголосовать: не нравится

    It's basically:

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

      who ask bro???

      • »
        »
        »
        »
        22 часа назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится

        Your chatgpt!

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

Guys, downvote this blog to keep it +67.

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

67 problems in one contest! That's going to be a great experience.

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

https://codeforces.me/blog/entry/154343

Participate in this contest great problem are there in this contest

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

how can we solve 67 problems in 2 hours

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

why did i write this contest?

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +10 Проголосовать: не нравится

greedyforces

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

please publish the editorial, it helps me a lot... thank you

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +12 Проголосовать: не нравится
  1. I'm curious, why does problem D not ask for the operation to be performed? Are there solutions where determining feasibility is much simpler than finding the actual operation? That is not the case for my solution.
  2. How to solve E? I made a lot of observations, but nothing seems to lead to a concrete solution.
  • »
    »
    3 месяца назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    For E, say you have x strings with A ones and y string with B ones

    Construct any permutation, let's say 1,2,3,4...n construct the strings how many have A ones and how many have B ones? If the answer is not x and y, there is no solution

    Otherwise Now we know that x of the strings are to be placed in x known positions, but we don't know how many valid ways there are to do this, and we know y strings have y places but don't know how to distribute them either

    You can try any way, if it works, then all ways work, and the answer is A! * B! otherwise, no way will work and the answer is 0

    If he have some strings with A ones, some with B ones, some with C ones, etc... Then the answer is either A! * B! * C! *... Or it is 0, we just repeat the same process by constructing our own strings from a random permutation and checking whether we get the same number of ones in string

    To prove that if one way works then all work, and one way doesn't work then none of them work, Notice that if we swap 2 strings, let's say representing bits x and y then numbers in the permutation with both bits x and y set, or both unset, remain unchanged

    Numbers with x set and y unset or vice versa, they just swap places (try to trace some examples to see this) so if a number is < 1 or > n or a duplicate, therefore making the array not a permutation it doesn't disappear by swapping around strings, so the array remains not permutation

  • »
    »
    3 месяца назад, скрыть # ^ |
    Rev. 2  
    Проголосовать: нравится 0 Проголосовать: не нравится

    For E, first it is clear that each of the given strings must end up at a position that has the correct number of bits (i.e. the bitcount of the string in the $$$k$$$'th position must be equal to the number of numbers at most $$$n$$$ that have the $$$k$$$'th bit set).

    The key observation now is that if any such arrangement satisfying this property produces a valid permutation, then all such arrangements will also satisfy such an arrangement. To prove this, let $$$(S_1, \ldots, S_k)$$$ be a valid arrangement, and note that every other valid arrangement can be generated by repeatedly swapping $$$S_i$$$ and $$$S_j$$$ that have equal bitcount. None of these swaps will flip the validity of the arrangement (after each swap, all numbers stay distinct, and it's not hard to check that none of the numbers end up exceeding $$$n$$$). Thus, if any one arrangement works, they all work, and the answer ends up being the product of several multinomial coefficients.

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

    Solution to $$$E$$$.

    We don't know the order of numbers. Let's try to sort them from $$$1$$$ to $$$n$$$ starting from greater bits.

    For the first (greatest) bit do the following. First we have to choose the row, which will correspond to it. The only criteria is the number of bits in the row: they have to be equal. For example, for $$$n = 6$$$ the greaters bit's row has to have $$$3$$$ bits: for numbers $$$4$$$, $$$5$$$ and $$$6$$$. Let's multiply the answer by number of such rows. And then swap one of these rows with the last row.

    Next we need to reorder columns (numbers themselves), such that bits in newly placed row are in correct positions. Let's swap columns, so that they placed correctly.

    And this was the first iteration.

    Assume input:

    n = 6
    011001
    100011
    010110
    

    In this case we need to place at bottom the row with exactly $$$3$$$ bits. All rows satisfy this. Thus multiply answer by $$$3$$$ and move one of the satisfied rows to bottom (but we don't need it here).

    Next, we need to have the following picture:

    xxxxxx
    xxxxxx
    000111
    

    We can do this by swapping second and sixth columns:

    011001
    110010
    000111
    

    Then we proceed to the next bit. We do the same, but now we can't swap columns, if one of them is $$$\le 3$$$ and the other is $$$\ge 4$$$, otherwise it will break the last row. Those boundaries split row by segments. We need to find the row, which on every segment has the same number of bits, as the required segment. For example, now the second row has to be $$$011001$$$. So we need row, which on segment $$$[1,3]$$$ has two bits, and on segment $$$[4, 6]$$$ has one bit. Again multiply answer by number of such rows. The rest is the same.

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится

Is it possible to go unrated now?

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +10 Проголосовать: не нравится

Disgusting D, tons of corner cases.

»
3 месяца назад, скрыть # |
Rev. 2  
Проголосовать: нравится +4 Проголосовать: не нравится

I think that this contest is much more harder than other edu rounds. Also, I'm waiting for MIDORIYA_ 's record excuse. He only solved AB btw.

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

This round seems so difficult... I don't know why, but I was stuck with C for around an hour lol.

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится

bro was c that easy or are there too many cheaters on this platform might quit ig

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

Anyone managed to AC E1 with brute force? (I don't mean stupid brute force, but with some tricks)

»
3 месяца назад, скрыть # |
Rev. 3  
Проголосовать: нравится +4 Проголосовать: не нравится

Simpler sol'n to D, find first, last position and count of each type. If last-first+1>count then this type needs a fix. Only 4 cases are possible, swap last with first-1, swap first with last+1,swap last with (end of contiguous segment starting at first)+1, swap first with (start of contiguous segment ending at last)-1. If it passes for any one formation cout yes else cout no.

  • »
    »
    3 месяца назад, скрыть # ^ |
    Rev. 2  
    Проголосовать: нравится +1 Проголосовать: не нравится

    bro why did my fail , Got WA on D (Goods on the Shelf) with a greedy idea and trying to understand the flaw.

    My approach was:

    • Count contiguous segments for each value.
    • Mark values appearing in multiple segments as "bad".
    • If there are too many bad values, answer NO.
    • Otherwise try to repair one bad value with a single swap and verify the final array.

    For example:

    1 1 2 3 2 3

    Here:

    • 2 appears in segments [2] and [4]
    • 3 appears in segments [3]and [5]

    So bad values are {2,3}.

    I then try swaps involving occurrences of a bad value and check whether the resulting array has every value in a single contiguous block.

    This passes samples but fails hidden tests.

    What is the main flaw in this reasoning? can you give counterexample that could fail here?

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +19 Проголосовать: не нравится

boring and difficult and no idea and suffering forces

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

open upsolving please

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

$$$C$$$ was too hard :( and $$$D$$$ was so much easier, but my submission is wrong on test 3, could anyone please just take a quick look at it?

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +7 Проголосовать: не нравится

I hate D

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

Basic solution for C:

Scan left to right and check if we have more ) than (, if so iterate backwards and delete ( since it'll lead to more imbalance

Now do the same thing right to left and check if we have more ( than ), if so iterate forward and delete ) since it'll lead to more imbalance

If we have any leftover deletes, just scan left to right and delete (

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

d = suffer to win

i dont think anyone that read the problem didnt think of the idea within 5m LOL

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

Any idea for F?

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

Guys can anyone suggests some problems similar to B, it took a lot of time to get the logic of B, I want to practice similar problems where we need to construct such arrays.

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится

Weak E1 pretests.

»
3 месяца назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

This is a crazy approach in Q2 by me:

used dp lol ~~~~~

vector dp[200]; vector vis(200, false);

vector firstdp(int n) { vector g;

if (vis[n - 1] == true)
    return dp[n - 1];
else {
    vector<int> g = firstdp(n - 1);

    g.insert(g.begin() + (g.size() / 2), n);
    g.insert(g.begin() + g.size() - 2, n);
    g.insert(g.begin(), n);
    g.insert(g.begin(), n);

    dp[n - 1] = g;
    return dp[n - 1];
}

}

int main() { int t; cin >> t;

while (t--) {
    int n;
    cin >> n;

    dp[1] = {1, 2, 2, 1, 2, 1, 1, 2};
    dp[2] = {3, 3, 1, 2, 1, 3, 2, 2, 1, 1, 3, 2};

    vis[1] = true;
    vis[2] = true;

    vector<int> g = firstdp(n);

    for (int i = 0; i < 4 * n; i++) {
        cout << g[i] << " ";
    }
    cout << "\n";
}

} ~~~~~~~

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

PCTprobability can you answer this question

It is related to your solution for b

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

what was the approach for B ? boring and useless question

  • »
    »
    3 месяца назад, скрыть # ^ |
    Rev. 3  
    Проголосовать: нравится 0 Проголосовать: не нравится

    https://codeforces.me/contest/2233/submission/377970880

    I created an array of $$$4n$$$ length, with first $$$n$$$ elements being $$$1, 2 \dots, n$$$, next $$$n$$$ elements also being the same list of first $$$n$$$ naturals, so total 4 times, basically 4 chunks of this list, notice that all elements so far have equal distance of $$$n$$$ between consecutive $$$p_{x,i}$$$'s. Then I applied a cyclic permutation to first and fourth chunk, then the $$$(p_{x,i+1}-p_{x,i})$$$'s become $$$n-1$$$ for $$$i=1$$$, $$$n$$$ for $$$i=2$$$ and $$$n+1$$$ for $$$i=3$$$ where $$$1 \leq x \lt n$$$. In the case where $$$x = n$$$, it's $$$2n-1, n, 1$$$ for $$$i=1,2,3$$$ respectively. Thus for all $$$x$$$ and $$$i$$$, the $$$(p_{x,i+1}-p_{x,i})$$$'s are different and it passed for me. I think there's actually a similar problem in Pinter's Algebra book or Dummit and Foote chapters on symmetric groups I don't really remember. Edit1: Typo, Edit2: symmetric groups, not cyclic

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

    keep repeating solution for n=2 and solution for n=3

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

https://codeforces.me/contest/2233/submission/377920491

how is the above brute force passing inside limit ??

BledDest can you explain this??

no of arrays possible are (4n)!/ (4!)^n ! = factorial

is the no of arrays inside limit ??

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

D cooked me. Enjoyed the contest tho.

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +10 Проголосовать: не нравится

Why is the "system testing" taking forever lol is hacks phase gonna be extended

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится

Today's round did'nt feel to be an educational round.

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +9 Проголосовать: не нравится

Just shuffling the array in B because the probability of a valid one is high is so sick. Probability is cool.

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +10 Проголосовать: не нравится

Unexpected Verdict incident (not even an option in dropdowns lmao)

uvhack

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится

I found it interesting for B.

ll n; cin >> n;
cout << n << " ";
for(ll i = 1; i <= n; i ++) cout << i << " " << i << " ";
for(ll i = 1; i <= n; i ++) cout << i << " ";
for(ll i = 1; i < n; i ++) cout << i << " ";
cout << endl;
»
3 месяца назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

when will ratings get updated?

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +7 Проголосовать: не нравится

I'm sorry, but I felt the contest was poorly designed and the problems were terrible.

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

was this unrated ?

i ranked about 10k but still my rating hasn't changed a bit !

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

I hate problem D. Why was the test data so weak during the contest?

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

Finally, the rating is out!

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

another day another cheater https://codeforces.me/contest/2233/standings# another guy, i dont find his soln suddenly, Saugata123. all soln have AI comments

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

E is very nice, but I don't like ABCD

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

worst contest ever

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

-71 is crazy

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

You will be given 6 or 7 or 67 problems and 2 hours to solve them. plese change to 1 or 0 or 2 and 102 problem

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

Hello,

I am writing regarding the plagiarism flag on my submission [377950943] for problem 2233C.

I want to clarify that I wrote this solution entirely on my own during the contest. I did not share my code with anyone, did not post it on Ideone, Pastebin, or any other public platform, and I have no idea who krish1567 is.

I understand the codes look similar, but I believe this is a case of independent convergence. The approach — computing a prefix count of '(' from the left, a suffix count of ')' from the right, finding the optimal split point, and greedily marking up to k characters — is a very natural and straightforward greedy solution for this problem. When a problem has one clean optimal approach, many contestants will independently arrive at nearly identical implementations.

I have been participating honestly and this is the first time I have faced such a flag. I respectfully request that my case be reviewed manually.

Thank you for your time. khabibOfCodeforces

»
3 месяца назад, скрыть # |
Rev. 3  
Проголосовать: нравится -6 Проголосовать: не нравится

Regarding the plagiarism warning for my submission 377946024 on 2233C, I would like to clarify that the solution was written independently by me. The core observation and algorithm using prefix counts of '(' and suffix counts of ')', finding the optimal split point, and greedily selecting deletions were derived by me during the contest.

While coding, I occasionally used an LLM as a general coding assistant for implementation and function-writing suggestions, which may have resulted in coding patterns similar to those found in other submissions implementing the same idea. However, I did not share, receive, view, or copy code from Soumya26 (submission 377988862) that too I have submitted much earlier than this person, and I have no connection or association with that account.

IST 20:37 mine, and 21:51 for this account, kindly make my submissions back as this clearly states they have copied from sources not me.

I respectfully request a manual review of the flagged submissions, as any similarity is due to the straightforward nature of the algorithm and common implementation patterns rather than code sharing or unauthorized collaboration.

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

Dear Codeforces Administration,

I am writing regarding the recent warning about my submission [377932075] for problem 2233D. I want to clarify that I solved this problem entirely independently and did not share my code, nor did I copy from anyone else during the contest window.

I am genuinely unsure how my solution matched with the other users listed. I do not know them and did not use any public online compilers or forums to test my code during the round. The similarity might be due to a common algorithmic approach to this specific problem or standard C++ structural templates that I frequently use.

I respect the platform's rules and the integrity of the rating system. I would appreciate it if this case could be reviewed, as the coincidence was entirely unintentional.

Sincerely, DrownedDragon06

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится -6 Проголосовать: не нравится

Appeal for False Plagiarism Flag on Submission 377970197 (Problem 2233C) Hello Codeforces Team,I am writing to formally appeal a plagiarism warning I received regarding my submission for problem 2233C (Submission ID: 377970197). The system flagged my code as significantly coinciding with user khabibOfCodeforces (Submission ID: 377950943).I want to state unequivocally that I solved this problem entirely independently. I did not cheat, I did not share my code with anyone, and I did not use any public IDEs like ideone.com to test my logic. The similarity between our codes is purely circumstantial and stems from the natural, most optimal approach to solving this specific problem.Here is a detailed breakdown of why these submissions are an instance of convergent thinking, alongside the clear stylistic differences that prove independent authorship:1. The Logic is a Standard CP PatternThe problem essentially dictates its own implementation. The optimal solution requires tracking the prefix counts of ( and suffix counts of ). Any experienced programmer will immediately reach for two std::vector arrays to precompute these states in $$$O(N)$$$ time. From there, iterating through to find the minimum sum split point, collecting target indices into an array, and mutating a base string of 0s into 1s is the most direct, straightforward greedy implementation possible. When the optimal path is this narrow, independent C++ implementations will inevitably mirror each other structurally.2. Core Architectural DifferencesWhile the logic is the same, our basic coding habits and templates are entirely different:Execution Flow: My implementation processes the test cases directly inside the int main() block using a while(t--) loop. The other user uses a modular approach, wrapping their logic in a void solve() function and calling it from main().I/O Optimization: The other user actively utilizes fast I/O optimizations (ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);) and uses \n for line breaks. My template does not include fast I/O setup, and I use endl for flushing the output stream.Macros and Types: The other user includes specific type definition macros (#define ull unsigned long long, #define ll long long), which are completely absent from my environment setup.3. Divergent Naming ConventionsThe variable naming clearly shows two completely different thought processes during implementation:I used semantic, directional naming for my arrays (left and right), whereas the other user used shortened, abstract names (ss and rr).My minimization variables were tracked using mini and best, while they used mincost and minp.I named my index collection vector cover (thinking about covering the necessary deletions), whereas they used targets.My deletion limit variable was dels, and theirs was del.The MOSS system correctly identified that the Abstract Syntax Tree (AST) of our logic is highly similar, but this is a false positive caused by the standard nature of the algorithm. The differences in flow control, template setup, and variable nomenclature definitively point to two separate authors writing code to solve the same constrained logic puzzle.I take my competitive programming journey seriously and always adhere to the rules. I kindly request that the moderation team manually review these submissions and lift the warning from my account.Thank you for your time and for maintaining the integrity of this platform.

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

Dear Administrator, I follow all contest rules and believe the flag on question 2233E1 is a false positive. The problem practically requires a Bitmask DP reconstruction, so the outer loops and state iteration will naturally match common CP templates (e.g., LeetCode 526, Codeforces 1550E). That similarity is expected and does not imply copying. My implementation contains original, identifying choices: I compute the current depth with GCC’s intrinsic __builtin_popcount(mask) rather than an explicit loop. I perform an O(N) frequency check and reconstruct integers with int nv = v[mask][j] | ((s[i][j]-'0') << d);, using a temporary frequency array f compared to precomputed cnt. I also copy state vectors only when dp[nxt] == 0 to avoid unnecessary work. These implementation details and structure show independent work, not plagiarism. Please review the code with this context and submission timelines which will make everything clear. Attached is the annotated code which I had submitted ~~~~~ // This handles the specific "Permutation Transmission" requirement // of finding bit frequencies. It has no equivalent in simple problems. int m=0; int tmp=n; while(tmp>0){ m++; tmp/=2; }

vector<string> s(m);
    for(int i=0;i<m;++i){ cin>>s[i]; }

    vector<vector<int>> cnt(m+1, vector<int>(1<<m, 0));
    for(int d=1; d<=m; ++d){
        int mx=1<<d;
        for(int x=1; x<=n; ++x){ cnt[d][x&(mx-1)]++; }
    }

    // Every Subset DP problem (like LeetCode 526) initializes an array 
    // of size 2^m. Using "dp" is the global standard variable name.
    vector<long long> dp(1<<m, 0);
    vector<vector<int>> v(1<<m, vector<int>(n, 0));
    dp[0]=1; // Base case: 1 way to have an empty set
    vector<int> f(1<<m, 0);

    // STANDARD LEETCODE TEMPLATE
    // Iterating using the variable name "mask" up to (1<<m) is textbook CP.
    for(int mask=0; mask<(1<<m); ++mask){

        if(dp[mask]==0) continue; // Universal optimization check

        // Built-in GCC macro used universally in CP to find the current row/depth
        int d=__builtin_popcount(mask); 

        for(int i=0; i<m; ++i){ // Iterate through all available items

            // Bitwise AND to check if item 'i' is already in 'mask'
            if(!(mask&(1<<i))){ 

                int nxt=mask|(1<<i); // Bitwise OR to create the next state

                //
                // [PROBLEM-SPECIFIC LOGIC] - similar to multiple codeforces  question 
                // In LeetCode 526, this is a 1-line mathematical check.
                // Here, it is a forced O(N) frequency matching simulation.
                int mx=1<<(d+1);
                for(int val=0; val<mx; ++val) f[val]=0;

                for(int j=0; j<n; ++j){
                    int nv=v[mask][j]|((s[i][j]-'0')<<d);
                    f[nv]++;
                }

                bool ok=true; // "ok" or "valid" are standard boolean flags
                for(int val=0; val<mx; ++val){
                    if(f[val]!=cnt[d+1][val]){
                        ok=false;
                        break;
                    }
                }

                 // STANDARD LEETCODE TEMPLATE
                // If the move is valid, pass the combinations forward.
                if(ok){
                    if(dp[nxt]==0){
                        for(int j=0; j<n; ++j){
                            v[nxt][j]=v[mask][j]|((s[i][j]-'0')<<d);
                        }
                    }
                    dp[nxt]+=dp[mask]; // Exactly equivalent to LeetCode templates
                }
            }
        }
    }
    // Output the final state mask
    cout<<dp[(1<<m)-1]<<endl; 
}

} ~~~~~ Regards, mayankrana

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

Dear administrator, this comment is regarding the plagiarism flags which have been put on my submissions for E1(377988071) and E2(377987849) which are essentially the same code and hence I will be talking about them together. I believe that this is a case of false positive and request for removal of my contest skip from this contest because of the same. I will be explaining everything for my reasoning below. I submitted essentially the same code for both versions because the only difference between E1 and E2 was the constraints and also the solution I came up with had good enough time complexity to pass both. Apart from that I was matched with multiple other people. I do not know any of these people at all. I use VS code as my IDE and did not share my code with anyone anywhere. I have not copied from any other sites or from any other person's code. I understand that some parts of the implementation may appear similar to other submissions because the solution relies on a fairly specific observation about counting set bits in binary representations. The method of counting complete cycles and handling the remaining partial cycle is a standard binary-pattern observation, and there are only a limited number of natural ways to implement it efficiently. However, the solution and implementation submitted were developed independently. I have also provided a detailed explanation of how I thought of the question from start to finish, while I tend to make some intuitive jumps or things which I might not have rigorously verified mathematically or just have a feeling might work, this should still help demonstrate that I reached to this solution independently.

okay, I saw the question and was immediately thinking okay damn they reodered the bit position and each string only gives us the numbers of that bit, not really any info of any of the individual numbers, but then what information do we really have then? that lead me to thinking oh we know the total number of zeroes and 1s and actually we also know how many there are in each bit, so I thought okay first I will take that out and check whether if all strings actually match, other wise it will anw be incorrect, after that I was thinking how the largest bit would have really few ones, so I thought that maybe I can find the string with the least bits and I would know that okay this is the largest bit, I started thinking on maybe I can go like this hoping from bit to bit by order of increasing number of 1s and read each string and have some way to assign that okay these positions will likely have really large numbers, but I later on was kind of stuck on how on earth will I even track that and that it seems really complex and even if I can do that it seems like it might use some advanced concepts idk, so I left that, then I was thinking that okay, but what other ways can strings be wrong, so I started writing test cases on my copy, that is when I realized that between two strings it really doesn't matter what bit position they are at if they have the same number of 1 bits, so I thought why not just somehow check whether any combination works or not, but then I wasn't sure how to arrange it to check, then I looked at my copy and saw that I had already figured that part out earlier, which was to just straight up order them by the number of 1s which they have in increasing order. After this, if the array I got from making the numbers back had all numbers from 1 to n, then it must be possible to make this correctly into 1 to n cuz it literally just happened and as there is not distinction as such between two strings with same number of 1s, I can reorder them among themselves with no restrictions and still get all the numbers, so then after that it is a standard permutations concept to find out the number of permutations by multiplying all the factorials, with this my algorithm part was done. Then I thought okay, now I need to think of how I will implement all of these, so for how do I now calculate the number of bits for all the numbers, this was actually tougher than I initially thought, I was kind of blank initially, because going over all the bits for each number 1 to n to store it will for sure lead to TLE, so I then thought well do I really need to go through each number individually, like after all I do have literally all numbers from 1 to n and like bits are in their literal form remainders of the power of 2's so there must be some way to not have to go through each number. So, then I thought welll for the first digit, all I need to do is find how many numbers are even for which we just divide by 2 and all the rest will be odd, then I tried looking at the next bit I realized that this would have 2 0 bits and then 2 1 bits, so I could maybe divide by 4 and subtract 2 for the number of bits which have 1? I then thought okay similarly for the next bits as well, but how do I actually program this pattern, then I saw that well each time it was half the number of bits or well 2^k numbers with 0 if we are dividing by 2^(k+1). So, in short, bit k has the same pattern in cycles of 2^(k+1) where the first 2^k numbers have zero bit, so the formula will be to first divide the number by 2^k+1 to find the number of complete cycles and then find the remainder and remove 2^k from it if possible. The implementation follows these observations: first sorting the strings by number of ones, matching them to expected bit counts, reconstructing the values, verifying that they give all the numbers from 1 to n and then multiplying the factorials to find number of permutations.

I was particularly happy with these solutions because it was the first time I independently solved both the easy and hard versions of such a difficult problem during a contest, but I respect the system's rules and regulations as well as the integrity of the rating system.

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится -6 Проголосовать: не нравится

Hello Codeforces administrators,

My submission 377994817 for problem 2233E1 was recently flagged for plagiarism alongside another user's code. I am writing to clarify that my submission simply implemented standard Bitmask DP pattern, similar to that used in AtCoder's Problem O- Matching.

The modification i made to the standard solution was changing the validation logic form a simple O(1) check to an O(N) check for frequencies against a pre computed target, along with corresponding changes in the initialization in the beginning of solve function. Anyone using this approach was bound to use a similar flow to make it past the test cases while avoiding TLE.

I would also like to point out that I do not use pre-saved templates to code during the contest and hence there is uniqueness to my submission, like using a while loop to count my set bits, whereas many templates and the submission i was flagged with use pre-built functions.

I aknowlede the testing system might have flagged the submission due to its structural similarity, but implementing them was necessary to pass the test cases. I assure that the flag was merely a coincidence and not any kind of unfair practice.

Thank you in advance for looking into this matter. GKD3776

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

Dear administrator, my challenge to the false flag on my contest submissions I got the following message on codeforces itself (No mail, No specification as to what rule I broke, if it is a case of Plagiarism then it didn't even give me the submission with which my code matches) "ypsd Your submissions in contest 2233 — Educational Codeforces Round 191 (Rated for Div. 2) were skipped because of a rules violation in one or more submissions for problem 2233D — Goods on the Shelf."

I didn't cheat, I didn't copy the code from any one, neither did I publish my code to anyone. I did use AI, but only to generate new test cases for me to test my code on and to debug some errors I got, nothing related to the logic of the question.

I wrote my approach of all attempts in comments, including the changes I make in between attempts as i usually do for tougher problems, I got many TLE wrong answers on this particular question before adding a few edge cases, which somehow passed the pretests during the contest, but it failed during system testing, and I accept that result. But my entire contest was skipped due a reason I don't even know. So I got skipped mark on D, for which my solution was already wrong in the first place. How does that even make sense. please regrade my submissions and make the contest rated for me again. I have followed the contest rules to the best of my knowledge. It's a humble request.

»
3 месяца назад, скрыть # |
 
Проголосовать: нравится -6 Проголосовать: не нравится

Respected Sir,

I am writing regarding the rules violation notification for my submission in Educational Codeforces Round 191.

I would like to respectfully state that I solved the problem independently. I did not copy code, share my solution, or publish my code during the contest. I also do not know the participant whose submission was referenced in the similarity report.

While I understand that my solution was found to be significantly similar to another submission, the similarity was completely unintentional from my side. The solution was written by me during the contest without access to any other contestant's code. I would also like to mention that my submission was made before the other submission referenced in the report.

I sincerely request a review of my case. If restoring the contest result is not possible, I would be grateful if an alternative resolution, such as treating the contest as unrated for me, could be considered, as I had no intention of violating any rules.

Thank you for your time and consideration.

Yours sincerely,

Handle: venkat6912 Contest: Educational Codeforces Round 191 (2233) Problem: 2233C Submission ID: 377963928

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

Dear Administrator,

Regarding the contest Educational Codeforces Round 191 (Rated for Div. 2), I would like to clarify the rules violation case related to code copying.

The submission from my account was copied, and I take full responsibility for the incident. I sincerely apologize for violating the contest rules.

I kindly request that you restore the contest rating and remove the penalty from the other account that was also flagged for the same violation. The owner of that account was not at fault and had no involvement in the misconduct. The mistake was entirely on my side.

I would be grateful if you could reconsider the case and take this clarification into account.

Thank you for your time and understanding.

Sincerely, Handle: itkd

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

Hello Codeforces Team, My submission for Problem 2233D during Educational Round 191 was recently flagged for a rules violation and skipped. I am writing to respectfully appeal this decision, as I wrote the logic entirely by myself. U can see that i am a beginner in this platform and 3000 rank was my best rank ever in cf when i got that rank after solving C i was satisfied so i did not have any motivation to solve D so I just wrote a shitty brute force code with n^3 complexity but it was still flagged . I think it happened because I used functions in the code which i don't do usually . But i only did it as i had 40 mins to kill as I knew D was well beyond my limits. So i thought that with the time at hand i could make sure my code for D was understandable for me when i decided to upsolve it later. I would be grateful if you could review your decision as it makes no sense for me to copy a code with n^3 time. Thanks and regards

»
7 недель назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

To the administrators I am writing for the past month penalty applied to my old account, which was not answered in this month. My solution for problem 2233E2 (e2 of this round), with submission id: 377982587 was skipped due to a false positive coincidence with other (that I think is special in this round). All the code and core logic was written by me, the only external resource that I used was from this blog https://codeforces.me/blog/entry/140773 (not even used), I kindly ask for the review of my case :(, I really love competitive programming and don't want this false mistake to not allow me to keep participating fairly, If anything please contact me.