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

Автор awoo, история, 3 года назад, По-русски

Привет, Codeforces!

Во 19.12.2023 17:35 (Московское время) состоится Codeforces Round 916 (Div. 3) — очередной раунд для третьего дивизиона. В этом раунде будет 6-8 задач, по сложности подходящих для участников с рейтингом до 1600 (во всяком случае, мы надеемся на это). Но, конечно же, участники с рейтингом 1600 и выше могут зарегистрироваться на раунд вне конкурса.

Раунд пройдет по правилам образовательных раундов. Таким образом, во время раунда задачи будут тестироваться на предварительных тестах, а после раунда будет 12-ти часовая фаза открытых взломов. Мы постарались сделать приличные тесты — так же как и вы, мы будем расстроены, если у многих будут падать решения после окончания контеста.

У вас будет 2 часа и 15 минут на то, чтобы решить 6-8 задач. Штраф за неверную посылку будет равняться 10 минутам.

Напоминаем, что в таблицу официальных результатов попадут только достоверные участники третьего дивизиона. Как написано по ссылке — это вынужденная мера для борьбы с неспортивным поведением. Для квалификации в качестве достоверного участника третьего дивизиона надо:

  • принять участие не менее чем в пяти рейтинговых раундах (и решить в каждом из них хотя бы одну задачу),
  • не иметь в рейтинге точку 1900 или выше.

Независимо от того, являетесь вы достоверными участниками третьего дивизиона или нет, если ваш рейтинг менее 1600, то раунд для вас будет рейтинговым.

Раунд основан на задачах муниципального этапа Всероссийской олимпиады школьников в Саратове и Саратовской области 2023/2024, поэтому если вы участвовали в нем — пожалуйста, воздержитесь от официального участия в этом раунде.

Задачи вместе со мной придумывали и готовили Адилбек adedalic Далабаев, Иван BledDest Андросов, Максим Neon Мещеряков, Роман Roms Глазов и Александр fcspartakm Фролов. Отдельное спасибо Владиславу Vladosiya Власову за отличную координацию.

Большое спасибо Михаилу MikeMirzayanov Мирзаянову за системы Polygon и Codeforces, без которых этот раунд бы не состоялся!

Наконец, спасибо тестерам раунда FBI, MagnusCarlsen321_alt и SonOfHonor за ценные советы и предложения!

Удачи в раунде! Надеюсь, задачи, которые мы подготовили, вам понравятся.

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

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

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

Wow, a div 3 round with edu round setters. Excited to see how this goes

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

Hi guys, I'm sorry to bother, I'm kinda new in this website, I just voted downside by accident, so please remove it, also, how can I unregister from a contest? I'm really really sorry, but I registered before 1-2 days, and I just remembered that tomorrow I have school so I can't participate, please is it possible to remove my registration from the codeforces round 916 ? thank you very much, I'm just worried that my rating would decrease incase I don't attend

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

First unrated contest Hope to see some good problems. (POV: frequency of contest at CF in this month is amazing)

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

back to back cf round , yayyyy

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

Excited for the contest. Hoping To Solve 4 problems fast in this round. got -ve delta in education round :( .. hoping to become expert this contest

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

Please have more div2s or I'll lose a lot of money to pk_27. (;_;)

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

Me every time I do a div 3 contest:

look through first 4-5 problems
if(is_math_related) 
   leave contest;
else 
   finish solving A, B, and C in first 40 minutes;
   give up because D too hard;

plsnomath

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

In last div-3 I bricked in $$$C$$$ , hopefully today I will have my revenge

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

Yes div3, hurrah!

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

After solving A, B & C:

There is nothing we can do...

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

When will the rating of yesterday's edu round be updated? I was hoping to become specialist in that and then give today's div3 as a rated round.

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

i will be demoted to less than 1600 after the rating drops for the last div 2 contest that was yesterday. currently i'm unrated for the div 3. if i participate now will i be considered rated or no ?

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

My advice as a last-minute tester, don`t forget reading and thinking about every problem for at least 5-10 minutes, because all of them are nice

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

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

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

awoo can you please give some update regarding the rating calculation?

Whether for people who would be upgraded to Expert, the round will be rated or not?

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

Will bhediya sir is the solves 6 problems today?

Upvote: Yes

Downvote: Yes

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

Queueforces

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

please fix the queue

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

E1 is a bluff. The exponential time brute force solution is more difficult than the greedy optimal solution I think.

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

F was an interesting problem for me... still not sure how to approach it but came up with this proof-by-AC solution lol

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

I do not believe how badly I performed... any advice on improving at game problems? I swear they are my kryptonite.

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

what's the idea of d?

i can do both E how easy and hard version matter?

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

    Try all 3*3*3=27 combinations of the largest 3 values of a,b,c

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

      You don't have to try 27 combinations even comparing 9 triplets works

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

        Can you explain how it's working? I'm not still getting it properly.

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

          You can sort all the 3 types of activities and preserve their indices. Something like $$$Element, Id[Element]$$$ for each of activity individually. Now you can sort all three activities. The ways you can form combinations are

          $$$max(A)$$$, $$$max(B):(id[B] \neq id[A])$$$, $$$max(C): id[C] \neq id[A], id[C] \neq id[B]$$$ or $$$max(A)$$$, $$$max(C): id[C] \neq id[A]$$$, $$$max(B): id[B] \neq id[A], id[B] \neq id[C]$$$ then you can do this for each of the arrays individually giving a total of 9 combinations

          • »
            »
            »
            »
            »
            »
            3 года назад, скрыть # ^ |
             
            Проголосовать: нравится 0 Проголосовать: не нравится
            bad implementation brute force but doesn't take that long to type
  • »
    »
    3 года назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    I did it by trying all permutations the order of choosing, and when its ones turn to choose they just choose the biggest one where the day isn't chosen before, and just getting the max of all permutations.

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

    It can be done using dp with bitmasking. Here's the code: https://codeforces.me/contest/1914/submission/237970710

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

RIP my rating

should have not participate this round

couldn't solve E on time

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

Did decent in this round but unfortunately is unofficial because the changes for last round isn't updated. Can't enjoy the free rating :( Does anyone know how pF works? I solved G1 and have ideas for G2 but I couldn't think of how to solve pF at all...

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

I think C > D D was very simple , but what is the idea behind C

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

Запутанное определение начальника в задаче F. Пол часа решал не ту задачу. Одно расстройство...

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

    Сейм. Я вообще сначала написал топ сорт, а потом заметил это условие.

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

      Топсорт дерева?)))

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

        Ну да. Если бы начальник не считался родителем всех вершин, то можно было бы сначала сделать топсорт, удаляя одновременно по две вершины и получить бамбук с ним наверху. После этого просто посчитать, сколько максимально мы можем взять пар. Но, к сожалению, это оказалось неправильным решением.

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

Great round, thanks for clear and concise problems and strong test cases, helped to catch couple bugs. My personal best result so far

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

Can anyone one tell me how to approach and come up with the greedy solution sorting on a[i]+b[i] for problem E1 and E2?

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

    Alice wants to save her balls and get rid of Bob's, they both equally affect the score. And the vice versa for Bob.

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

    If Alice picks ith-marble, score increases by a[i]-1 and if Bob picks ith-marble score decreases by b[i]-1. If Alice did not pick up the ith-marble in his turn, this means that his choice of say jth marble which increased his score by a[j]-1 is more significant than the impact of Bob decreasing the score by b[i]-1 in the following turn, compared to an increase of a[i]-1 and a decrease of b[j]-1. So you need to sort the array |a[i]-1|+|b[i]-1|, which is equivalent to sorting a[i]+b[i]

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

    Initially, both Alice and Bob got all the marbles. No matter who operates on color i, the difference between their marbles is fixed a[i]+b[i]-1, so do a[i]+b[i] Sorting, Alice greedily chooses the largest a[i], and Bob chooses the largest b[i].

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

Will the rating change of this round take place after the previous educational round or on the current rating?

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

I've noticed the condition about head being superior over everybody in F, just after writing the solution, lol.

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

Amazing contest I enjoyed this Div3 specially problem C it's idea is very amazing and interesting to implement

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

D is a lot easier than C, you just need to care about three maximum elements of each array

My solution for D - Three Activities
»
3 года назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +3 Проголосовать: не нравится

Speedrun until I forgot to update a value in D and got WA on pre#2, and it took an hour for me to realize my mistake, otherwise could have finished writing F and G2 which I knew how to solve by the end of the contest... RIP rating.

btw good E ig, interesting greedy problem.

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

i am newbie here i have given the contest first time and this contest is showing unrated

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

Could someone explain the amazing solution 237977153 in G2 by jiangly? I don't understand the meaning of xor operation

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

    I think f[i] represents the set of all colours that occur exactly once prior to index i. It uses hashing to fit in a single integer and the xor means that after the second occurrence of each colour, it is removed from the hash. Then if there are two distinct indices i, j such that f[i] == f[j] and they are nonzero, all colours that occur between i and j only occur between i and j, and there exists another colour that "surrounds" them. Hence turning on any light bulb among this set initially could not be part of a minimal solution, because you would have to turn on one that surrounds them anyway (and that could have been used to turn that initial one on). So you can skip to the last occurrence of each f[i] when counting the number of ways.

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

    The core idea revolves around determining the number of ways to activate bulbs in such a way that disjoint ranges are covered. The approach involves finding** sets of bulbs that, when activated, cover a specific disjoint range**.

    Spoiler

    Let's denote the number of disjoint ranges as 'k.' For each range, we aim to identify the bulbs whose activation covers the entire range. Through some careful considerations, we conclude that we need to eliminate bulbs that do not contribute to extending the current segment. This elimination process is efficiently executed using prefix hash values and storing the last pointer for each unique prefix value.

    To illustrate this concept, consider the arrangement of bulbs: 1 2 2 3 1 3. The number of disjoint ranges in this case is one. Building prefix hash values results in pre[0]=1, pre[1]=1^2, pre[2]=1, pre[3]=1^3, pre[4]=3, pre[5]=0. After activating the first bulb, we jump to the bulb at index 1 + (last[1]=2).

    Spoiler

    The hashing technique employed here, as introduced by jiangly, is a so cool and unique that when understood properly can be generalized to solve a variety of other problems involving segment merging or ranges.

    const int mod= 998244353;
    
    std::mt19937_64 rng(std::chrono::steady_clock::now().time_since_epoch().count());
    
    void solve(){	
    	int n;
    	cin>>n;
    	vector<int>col(2*n);
    	for(int i=0;i<2*n; i++){
    		cin>>col[i];
    		col[i]--;
    	}
    		
    	//now through random number generator
    	//let's generate for each colour a unique random val
    	
    	vector<int>hashVal(n);
    	for(int i=0; i<n; i++)hashVal[i]= rng();
    	
    	//now make a prefix xor array of these hashed values
    	//so that we can effectively know how many 
    	//ranges of 0 to 0 we have
    	//number of min sets= number of ranges
    	
    	vector<int>prefixXor(2*n,0);
    	prefixXor[0]= hashVal[col[0]];
    	for(int i=1; i<2*n; i++)prefixXor[i]= prefixXor[i-1]^hashVal[col[i]];
    	
    	//number of zeroes = no of ranges
    	int ans= count(prefixXor.begin(),prefixXor.end(),0);
    	
    	int ways=1;
    	map<int,int>jumpTo;
    	for(int i=0; i<2*n; i++){
    		jumpTo[prefixXor[i]]= i;
    	}
    	
    	for(int i=0; i<2*n;){
    		//start of range-> prefixXor= hashedVal[i]
    		
    		if(prefixXor[i]==hashVal[col[i]]){
    			//inside new range
    			//jump directly all the ranges lying
    			//completely inside it and not helping in
    			//extending it
    			
    			int active=1;
    			int j=i;
    			while(prefixXor[j]!=0){
    				j= jumpTo[prefixXor[j]];
    				active++;
    				if(prefixXor[j]==0)break;
    				j++;
    			}
    			ways= (ways*active)%mod;
    			i=j+1;
    		}
    	}
    	cout<<ans<<" "<<ways<<endl;
    	return;
    }
    
»
3 года назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

I am new, could anyone explain what is open hack timing that is going on now?, it wll affect in rating ?

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

What's the idea behind F? I observed that we can pair up nodes from the $$$root(1)'s$$$ children and thier respective $$$subtrees$$$ as long as we can, Then the left over nodes in each children's subtree can be paired $$$iff$$$ they are leaves? I don't know a fast way to do all this? What's the optimal / correct approach?

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

Problem C: You can do at most $$$min(n, k)$$$ quests. To get first $$$m$$$ quests completed, you need to complete each of $$$m$$$ quests for the first time, then you have $$$k-m$$$ quests remain, of course you want to choose which quest brings the maximum profit, in this case, it is $$$max_{i=1}^{m} b_i$$$.

Read my solution for C - Quests for better clarification
»
3 года назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Solved 4 for the first time, had also solved 5th on paper but made an error addition for test case 4 to eventually discard my solution, had i not made the mistake i would have got the 6th question too. Should i call this a successful round for myself or try solving grade 1 mathematics to improve my addition and subtraction..

»
3 года назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +4 Проголосовать: не нравится
problem D is similar to problem in book called (`competitive programming handbook`) but with different story and in the book he ask about the minimum but in the problem he ask about the maximum...I solved this problem when I encounter it for the first time ...but in the contest I copied the code form the book and change it ..does it consider cheating ???

you can find it in chapter of bit manipulation (dp with bitmasking)

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

I wonder how many proved E

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

    If you have proved it,can you pls provide a proof of it?

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

      I imagined that both alice and bob actually have 2 arrays: 1 is empty and the other one is from the statement. So by 1 operation alice or bob delete a[i] / b[i] from the statement array of an opponent and then add b[i] — 1 / a[i] — 1 to the empty array. Then I determined the final score as diff between sum of elements of both alice arrays and sum of both of bob arrays. It's easy to see that with these 'new' rules the max final score will be determined by the same sequence of turns as with the 'original' rules. Then we can notice that if it's Alice's turn, the final score will increase by a[i] + b[i] — 1 and if it's Bob's turn the final score will decrease by a[i] + b[i] — 1.

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

      Let's assume that Alice picked the pair $$$(x, y)$$$, then she will gain $$$(x - 1)$$$ pts. And moreover, she will also make Bob lose $$$y$$$ pts. Hence, the relative gain she made by picking the pair $$$(x, y)$$$ is $$$(x + y - 1)$$$, which is also proportional to $$$(x + y)$$$. Thus, she will greedily pick the pair with the largest sum. Bob will also follow the same approach to play optimally.

      Now, we can just sort the vector<pair<int, int>> in decreasing order of the sum of both elements of the pair and assign them alternately to each player.

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

    proof was my way to solution. i couldn't guess.

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

The explanation of issue A is very, very bad

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

someone explain how to solve E to me?

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

a few minutes late on G1. feels bad

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

D >>> E

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

I've never done problems with easy and hard difficulty before ; was I supposed to send my answer in both difficulties ? Or just sending it on hard gives you all the points?

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

Can anyone provide any counter test for F https://codeforces.me/contest/1914/submission/238060620

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

Did anyone tried solving D using heap? pop largest 3 a,b,c such that they dont have same date.However i think here we miss many test cases

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

can anyone explain the intuition behind greedy optimal solution for E2, like using a set which stores (ai+bi) and then iteratively taking the max value, what was the logic behind it, also is there any solution to E2 which passes and is not greedy?

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

    If you play as Alice and take i on some move, you earn a[i] — 1 because Bob can't decrease this number after your move (-1 because you decrease your number by 1), and you earn b[i] because Bob loses b[i] marbles. And now you play as Bob and take j on some move, you earn b[j] — 1 because Alice can't decrease this number after your move and you earn a[j] because Alice loses a[j] marbles. So you need to maximize the same thing (a[i] + b[i] — 1) for both Alice and Bob on every move.

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

i registered for the contest earlier but have joined some seconds late , is this the reason this contest became unrated for me, i am a newbie and this is first contest i have given

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

How to brute-force E?

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

i did dp for d 238005542

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

Me After reading problem statement of A :

drawing

»
3 года назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
in problem F what is the meaning of the second condition
   1) employee x is the direct superior of employee y
   2) employee x is a superior of the direct superior of employee y.

does it mean that only parent and the parent's parent are superior of the current employee or the whole chain of parents in which the employee lies are there superior.
It seems so confusing.
»
3 года назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Bro, I managed to solve G1 after the contest and was glad that I could change it a bit for G2, but when I saw others' solutions for G2, I was completely baffled! Could someone please explain the solution for G2?

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

    In problem statement it's highlighted in bold: exactly two light bulbs for each color. Tbh, I didn't notice it during the round. So when we have a group of bulbs with 2 of each, we have SCC and can turn it on with just 1 switch in |group| — |sub sccs| ways. 2 of each color => xor == 0.

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

Could anyone please explain how C is solved with a greedy approach?

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

    Suppose you pick all the quests until the index $$$i$$$ just once ($$$i$$$ must be less than or equal to $$$k$$$). You still have $$$(k - i)$$$ moves remaining, and you can only choose the quest with an index less than or equal to $$$i$$$. We will greedily choose the quest with the largest value of $$$b$$$.

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

Can any setter/ tester provide 3944th case in the 2nd test case of problem F?

Thanks in advance!

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

So why it's unrated for me?Or it's unrated for everybody? What's the reason?

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

Long long integer timeout for question C.

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

CF predictor is trash now. Showed +100 in educational round. Just gained 47. Thankfully became Pupil. Also it was showing +125 for this contest but i am certain there will be almost no change in rating. Anyone can share their experience with carrot predictor?

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

Can someone explain F to me?

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

Can anybody explain the problem statement of F to me? Why is 3,4 the only team in the first test case? 1's superior is 1, 2's superior is 2, and 3's superior is 1. So, 2,3,4 are superior to nobody. But then why is 3,4 the only valid team?

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

    Nope, question says The second line contains "n−1 integers p2,p3,…,pn(1≤pi≤n), where pi is the index of the direct superior of the i-th employee." So, in 1 2 1; first number is direct superior of p2 => p1 is direct superior of p2 ; second number is direct superior of p3 => p2 is direct superior of p3 ; third number is direct superior of p4 => p1 is direct superior of p4 ; So, only (3,4) is valid team.

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

этот раунд будет рейтинговым для тех, кто по итогам education div.2 стал синим, но на момент написания div.3 еще не был им?

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

Help needed with E2

This is giving runtime error on test 9, if I use multiset but it works with priority queue or sorting the sum, but why does it give rte if I use multiset ?

https://codeforces.me/contest/1914/submission/238110925

int main() { init_code();

int T; cin >> T;

while (T --){ int N; cin >> N; vector a(N), b(N); for (int i = 0; i < N; ++ i) cin >> a[i]; for (int i = 0; i < N; ++ i) cin >> b[i];

multiset<pair<ll, ll>> st;
  for (int i = 0; i < N; ++ i){
     st.insert({a[i] + b[i], i});
  }   

  bool flag = true;
  ll res = 0;
  while (st.size()){
     auto it = st.end();
     -- it;
     st.erase(it);
     res += flag ? a[it -> second] - 1: -(b[it -> second] -1);  
     flag = !flag;
  }
  cout << res << endl;

} }

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

Waiting for system tests finish?

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

is this rated

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

sorry , it is a coincidence , i am a fresh man in the codeforces , I don't know why this happened,I promise this is just a coincidence.I'm making a little progress.I released my code in ideone.com.Someone else must have done it.I hope you can return my rating

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

The DP implementation for D can be found here. https://cses.fi/book/book.pdf Page 112

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

238021917 Why is this giving runtime error in test 24?

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

Is system testing done?

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

When will the ratings come...

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

I am a newbie here and my rating is currently 0, i solved problem A and C but my ratings isn't updated yet what rating should i expect??

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

Hope this time I will no longer be a newbie

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

as i have commented earlier with my account siddharthraj532, this account will no longer be used in contests from my side as it violates the guidelines. i once again apologize for the troubles. My verdicts for yesterday's contests are 'skipped' (the answers were correct), if there is a possibilty to fix this then i'd be grateful, if not then i understand.

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

my attempts to submit the C problem were ignored, but to be honest, I didn't understand why, my solution was written there like someone else's, but it's so sad that I solved the contest almost the whole round, and using the theme of my previous solution from the site on similar topics informatics(it's site) (many have there there is the same solution) I got a disapproving result on a task similar to the one I solved in the courses I attended (in my city, and the people on the list, as I understood, live far from me), the task was on the topic of simple counting, where I considered all possible cases according to the formula that I came up with on the go and used (to count the number of elements) to multiply by the value(write something how I can correct or apologize, I have been going to my rating for so long, solving the 2nd division, even though I was not so good at it) I am open to any form of verification to clarify this situation. Thank you for your understanding and attention to this issue. I am looking forward to solving this problem.

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

MikeMirzayanov — I'm not a cheater for this contest ! Similar codes may be coincidental.

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

    WOW !! You submitted the same code, changing the variable name mb to ar .. And is it a coincidence ??

    Your submission: 237968347 t = int(input()) for _ in range(t): n, k = map(int, input().split()) a = list(map(int, input().split())) b = list(map(int, input().split()))

    ar = [0] * n
    ar[0] = b[0]
    for i in range(1, n):
        ar[i] = max(ar[i - 1], b[i])
    
    ans = 0
    cnt = 0
    for i in range(min(k, n)):
        cnt += a[i]
        rem = k - (i + 1)
        cur = cnt + rem * ar[i]
    
        ans = max(ans, cur)
    print(ans)

    Your friend(/co-cheater)'s submission 237961744 t = int(input())

    for _ in range(t): n, k = map(int, input().split())

    a = list(map(int, input().split()))
    b = list(map(int, input().split()))
    
    mb = [0] * n
    mb[0] = b[0]
    for i in range(1, n):
        mb[i] = max(mb[i - 1], b[i])
    
    res = 0
    tot = 0
    for i in range(min(k, n)):
        tot += a[i]
        rem = k - (i + 1)
        cur = tot + rem * mb[i]
    
        res = max(res, cur)
    
    print(res)
»
3 года назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

I am writing in response to the email I received regarding the similarity of my code with others in the recent contest.

I would like to firmly assert that at no point did I engage in any form of dishonesty or cheating during the competition. The code I submitted was entirely the product of my own thought process and effort. I had diligently worked on the problems and developed the solutions independently, without any external assistance or copying from any source.

I was not aware of the similarity of my code with that of other participants until I received your email. This coincidence is as surprising to me . I understand the importance of integrity in programming contests and always strive to uphold these values.

I am open to any form of investigation or scrutiny you deem necessary to clarify this situation.

Thank you for your understanding and attention to this matter. I look forward to resolving this issue.

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

    If you look at E1 and E2, I was not able to think of the greedy criteria of a[i] + b[i] at first so i had brute forced it for E1. I coded this up in the last 5 minutes when the solution came up to me. Idk what else i can do to justify my innocence :/

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

      Comment the message you received from the system here if you are innocent ..

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

        System

        flownn Attention!

        Your solution 238049911 for the problem 1914E2 significantly coincides with solutions artemfad/238024787, karitkar7/238026318, manikanta2004/238028742, heckeruwuu/238042370,flownn/238049911, ayush_jhajharia/238050136. Such a coincidence is a clear rules violation. Note that unintentional leakage is also a violation. For example, do not use ideone.com with the default settings (public access to your code). If you have conclusive evidence that a coincidence has occurred due to the use of a common source published before the competition, write a comment to post about the round with all the details. More information can be found at http://codeforces.me/blog/entry/8790.

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

          It is visible with naked eye. I can't understand why you are still claiming ...

          Anyways, I ran MOSS on all 6 submissions ..
          And you can check result here Plag Check Results

          Though many solved it using the same logic, your implementation is the exact same which could never happen unless you had copied it.

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

When would the editorial be out, now that the hacking phase is also over?

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

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

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

As some of you, i got RE on test 24 for E2 problem. I didn't know that comparator must return false on equal elements. Even thou, I'd like to know WHY this submission got ac without changing the operator. 238177631