awoo's blog

By awoo, history, 2 years ago, translation, In English

Hello Codeforces!

On Feb/23/2024 17:35 (Moscow time) Educational Codeforces Round 162 (Rated for Div. 2) will start.

This round will be rated for the participants with rating lower than 2100. It will be held on extended ICPC rules. The penalty for each incorrect submission until the submission with a full solution is 10 minutes. After the end of the contest, you will have 12 hours to hack any solution you want. You will have access to copy any solution and test it locally.

You will be given 6 or 7 problems and 2 hours to solve them.

The problems were invented and prepared by Adilbek adedalic Dalabaev, Ivan BledDest Androsov, Maksim Neon Mescheryakov, Roman Roms Glazov and me. Also, huge thanks to Mike MikeMirzayanov Mirzayanov for great systems Polygon and Codeforces.

Good luck to all the participants!

UPD: Editorial is out

  • Vote: I like it
  • +250
  • Vote: I do not like it

| Write comment?
»
2 years ago, hide # |
 
Vote: I like it -13 Vote: I do not like it

Good luck to everyone!

»
2 years ago, hide # |
 
Vote: I like it +33 Vote: I do not like it

Such a short and clear announcement I hope problems statements be like this too!

»
2 years ago, hide # |
 
Vote: I like it +2 Vote: I do not like it

Hope able to AK this round

»
2 years ago, hide # |
 
Vote: I like it -41 Vote: I do not like it

Good luck to everyone! (please upvote i need contribution)

»
2 years ago, hide # |
 
Vote: I like it +11 Vote: I do not like it

Excited to get to Expert

»
2 years ago, hide # |
 
Vote: I like it +2 Vote: I do not like it

Hope to reach 2024

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

I think the title should say [Rated upto div2] instead of [Rated for div2]

»
2 years ago, hide # |
 
Vote: I like it +14 Vote: I do not like it

My last contest in this winter vacation

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Score distribution?

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Who tested?

»
2 years ago, hide # |
 
Vote: I like it -10 Vote: I do not like it

Educational rounds are mathforces af, thats a skip

»
2 years ago, hide # |
 
Vote: I like it +3 Vote: I do not like it

Enjoy the contest!

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

stay up to late again:)

»
2 years ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

Small and clear announcement. Hopefully we will enjoy this contest. </>

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Good luck everybody. Hope to get positive delta :)

»
2 years ago, hide # |
 
Vote: I like it +4 Vote: I do not like it

Missed opportunity to name problem C. as "Find C"

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Do we write outputs for each test case as it comes or all the way at the end?

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Finally, Goodbye 2023 has a worthy competitor.

»
2 years ago, hide # |
 
Vote: I like it -6 Vote: I do not like it

It's like Div 1.5

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

B>>>C

»
2 years ago, hide # |
 
Vote: I like it +5 Vote: I do not like it

B < A

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

problem D :(

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    it was just about binary search.

    • »
      »
      »
      2 years ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      What's your approach?

      • »
        »
        »
        »
        2 years ago, hide # ^ |
         
        Vote: I like it 0 Vote: I do not like it

        for each index,i checked on both sides and if any side's sum exceed the number at current index than can compress the range.Also note that if any side's range have all number same then will not consider that side.

        • »
          »
          »
          »
          »
          2 years ago, hide # ^ |
           
          Vote: I like it 0 Vote: I do not like it

          how did you find if all numbers are same in a range?

          • »
            »
            »
            »
            »
            »
            2 years ago, hide # ^ |
             
            Vote: I like it 0 Vote: I do not like it

            For example, arr=[1,1,2,3,3,3] i stored the ranges (0,1) , (2,2) , (3,5) in a vector 'vec' in sorted manner. It can be done in O(n).

            now suppose i want to check if (4,5) has all number same,what will i do? i will find the largest index in vec such that vec[i][0]<=4, now i will check if vec[i][1]>=5 than (4,5) lies under the range (vec[i][0],vec[i][1]) otherwise some numbers are diff.

            Just binary search things...

            • »
              »
              »
              »
              »
              »
              »
              2 years ago, hide # ^ |
              Rev. 2  
              Vote: I like it 0 Vote: I do not like it

              you can check it easy if all elements in the segments are the same or not you can use prefix sum and check if the summation in the segment is equal to r-l

              vector<ll>id(n+1);
              for(int x=1;x<=n;x++){
                  if(v[x]==v[x-1]) id[x] =id[x-1]+1;
                  else id[x] = id[x-1];
              }
              if(id[r]-id[l]==r-l) all elemnts are the same 
              
          • »
            »
            »
            »
            »
            »
            2 years ago, hide # ^ |
             
            Vote: I like it +3 Vote: I do not like it

            I did it with sparse table.

            Spoiler
»
2 years ago, hide # |
 
Vote: I like it +10 Vote: I do not like it

E too easy to be an E, swap D and E

»
2 years ago, hide # |
 
Vote: I like it +5 Vote: I do not like it

cheaters ruined the contest again :(

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +11 Vote: I do not like it

    just train more, yours perfomance is bad not because of cheaters

»
2 years ago, hide # |
Rev. 2  
Vote: I like it +21 Vote: I do not like it

Nice problem F! Thanks!

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +14 Vote: I do not like it

    How to solve it? My intuition is that we will perform 2nd operation at most once. Since number of 1s stays constant , we will try to merge 1s as close as possible.

    • »
      »
      »
      2 years ago, hide # ^ |
       
      Vote: I like it +31 Vote: I do not like it

      That's it! (I didn't realize we needn't do the 2nd operation twice in the contest QWQ)

      When we perform the 2nd operation only once, we can consider on the reversed string. We can try all positions for the highest bit, and binary search on the final length of the string ignoring leading zeroes.

      If the positions of the highest bit and the lowest bit are determined, the greedy solution is to put all 1 outside to the last few 0s in the interval, so the prefix of some length doesn't change. So we can use hash or suffix array to compare the prefixes, and then the best starting position can be determined.

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    But I think it's hard to write it.

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

I finally joined the dark side, selling my soul to Atcoder!

If you want to build intuition and upsolve problem D without looking at the editorial, try out 1901D : Yet Another Monster Fight. I've added hints as well.

A major hint for this problem:

Spoiler
»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

after getting 15 WA on problem C, I wished contest end earlier.

screwed up, going gray again

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    can you share the approach for C? thanks in advance

    • »
      »
      »
      2 years ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      it's called brute force approach, guess the solution and submit until AC

      so basically what I did was it must has something to do with prefix sum, so I computed that and may involve prefix cnt(0) so I used that, but couldn't figure out there is length involved so failed to AC.

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

in B is it not optimal to kill the nearest monster?

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

hint for D pls

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Why so tough time limit in E?

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    The intended solution is most likely small-to-large merging. It is not uncommon for the centroid decomposition to have a large constant factor.

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

how to approach B?

  • »
    »
    2 years ago, hide # ^ |
    Rev. 3  
    Vote: I like it 0 Vote: I do not like it

    Loop from the closest monster to the farthest (you need to take only the absolute value of all monster positions and then sort them), but you need to know each monster's health after the sorting, so you need to use something like a vector<pair<int,int>> where the first value is for position and the second value is for the index of that monster corresponding for its health . Now just loop from the closest to the farthest and sum their health and check how many rounds you need to get rid of the current sum, Rounds_required = ceil(current_sum/k).

    If at any time the rounds required are bigger than the current monster position, then we can't kill that monster so break and print no

    • »
      »
      »
      2 years ago, hide # ^ |
       
      Vote: I like it +3 Vote: I do not like it

      "it's better to use ( current_sum + k — 1 ) / k for ceiling ". said by LGM

»
2 years ago, hide # |
Rev. 2  
Vote: I like it 0 Vote: I do not like it

.

»
2 years ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

Need More Practice for Educational Rounds. Btw Can anyone tell me the approach for C.(B>C)

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Very nice problems

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

How to hack others?

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

any hint for problem c????

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Basically, if you have $$$1$$$'s in array $$$a$$$, they will be at least $$$2$$$ in array $$$b$$$ and all other elements will be at least $$$1$$$. So, for some $$$l$$$, $$$r$$$ you just need to check if sum on subarray from $$$l$$$ to $$$r$$$ is at least it's length $$$+$$$ amount of $$$1$$$'s in it. $$$l=r$$$ is an edge-case.

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Typo in problem D's tags: https://imgur.com/TvwOJcP

»
2 years ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

Did anyone recognize C was 1856B

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +1 Vote: I do not like it

    Yes, I solved the question today, but I'm still unable to solve Question C. I attempted to use a segment tree but failed.

»
2 years ago, hide # |
Rev. 4  
Vote: I like it +16 Vote: I do not like it

A: Let L=the minimum position of i such that a[i]==1, R=the maximum position of i such that a[i]==1, the until occurences of 1 become a single block, R-L will decrease 1 if you do operation on position R, otherwise it will not decrease. So the answer is (R-L)-(cnt-1) where cnt is the count of occurences of 1.

B: For each 1<=i<=n we need sum(j:abs(x[j])<=i)(a[i])<=k*i to kill monsters with distance <=i in i turns.

C: If L==R answer is no. Otherwise, for each a[i]==1 we need some j such that a[j]>1 and let a[i]+=1, a[j]-=1. Then we need sum(i:a[i]==1)(1)<=sum(j:a[j]>1)(a[j]-1). We can check this condition in O(1) by prefix sum.

D: Assume slime i is eaten by some slime to the left (the other case is similar), and all slimes used to eat i will form an interval [j, i-1]. So we need to find the maximum j such that sum(j, i-1)>a[i]. If j==i-1, slime i-1 can eat slime i directly. If value of a[j...i-1] is not all the same, then there will be a largest slime which can eat all other slimes in range [j, i-1] then eat slime i. Otherwise, all slimes in [j, i-1] have the same size and cannot eat each other, and slime i-1 is not larger than slime i. So we need to extend this interval to the left to find some k such that a[k]!=a[i-1] (if such k exist).

E: Small-to-large merge. Let dp[u][c]= (the number of nodes v in subtree of u, such that v is color c, and nodes on the path from u to v (except v) are not colot c). Then the number of valid paths with lca=u is sum(v1)(dp[v1][color[u]]) + sum(v1,v2,c)(dp[v1][c]*dp[v2][c]), where v1,v2 iterates over childs of u, c iterates over all colors on subtree of u, and v1<v2, c!=color[u]. The first term means valid paths start from u, and second term means valid paths start and end in subtree of u. To calculate the value we have dp[u][c]=sum(v: child of u)(color[v]==c) (if c!=color[u]), dp[u][color[u]]=1, we can maintain imformation in std::map and merge them small-to-large.

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Can you explain what merging small to large means? I had the same dp relation but got TLE on testcase 10.

    • »
      »
      »
      2 years ago, hide # ^ |
       
      Vote: I like it +4 Vote: I do not like it
      using tmii = map<int, int>;
      
      tmii& dfs(int node,int prev){
      	tmii& mp=*new tmii();
      	for(int next:adj[node]){
      		if(next==prev) continue;
      		tmii& mp2=dfs(next,node);
      		if(mp.size()<mp2.size()) swap(mp,mp2);
      		for(auto [color,cnt]:mp2){
      			if(color!=c[node]) ans+=(ll)mp[color]*cnt;
      			mp[color]+=cnt;
      		}
      		mp2.clear();
      	}
      	ans+=mp[c[node]];
      	mp[c[node]]=1;
      	return mp;
      }
      
  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +35 Vote: I do not like it

    Problem E can also be solved with DP on auxiliary trees.

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Can anyone please tell me why does this code won't work for problem C :(

»
2 years ago, hide # |
 
Vote: I like it -39 Vote: I do not like it

B >>> D > E > A > C

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Anyone who got WA on test 2 at problem D, then managed to solve it? What was missing? I did a binary search on prefix sums while checking for the existence of different elements using two segment trees (minimum != maximum). I got WA on test 2, and I couldn't find one where it was not working.

  • »
    »
    2 years ago, hide # ^ |
    Rev. 2  
    Vote: I like it 0 Vote: I do not like it

    Same here . I had the same approach but WA on test case 2.

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    You don't just have to check the existence of different elements. If your segment found by binary search contains all equal elements, you will need to extend it until a different element is found.

  • »
    »
    2 years ago, hide # ^ |
    Rev. 7  
    Vote: I like it 0 Vote: I do not like it

    I found the test I got incorrect on:

    3 
    2 2 1
    

    My program gives 2 -1 -1, it should have been 2, -1, 1. I guess I didn't pay enough attention when implementing.

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +3 Vote: I do not like it

    Let's say we have 3 9 9 9 9 9. We're checking how far right we need to go to eat 3. Simple binary search will result in -1 (no answer for it), because it will first check 3 9s but they're the same so then it will try more than 3 9s, etc. You need to process 1-length case separately.

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

In problem D sample input and ouput it is given in the third testcase that 2 2 3 1 1 will give an output of 2 1 -1 1 2 but cant slime 3 be eaten when 2 eats 2 and then eats 3. Making the expected output 2 1 2 1 2 or am I going wrong somewhere

»
2 years ago, hide # |
 
Vote: I like it +11 Vote: I do not like it

F is beautiful! Too bad I only managed to solve it a few minutes late lol

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Can someone hack it? 247947284

»
2 years ago, hide # |
Rev. 2  
Vote: I like it 0 Vote: I do not like it

247976858 Can you give me test case wrong ? My program WA on test 2 (Problem D)

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Can anyone find out the my mistake Thanks[submission:247947411]

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    void solve() {

    ll n, q;
    cin >> n >> q;
    vector<ll>a(n + 1);
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    vector<ll>b(n + 1, 0);
    for (int i = 1; i <= n; i++) {
        b[i] = a[i] + b[i - 1];
    }
    while (q--) {
        ll l, r;
        cin >> l >> r;
        if (l == r) {
            cout << no << endl;
            continue;
        }
        ll tem = b[r] - b[l - 1];
        ll h = r - l + 1;
        if (tem >= h / 2 + (h - h / 2) * 2) {
            cout << yes << endl;
        }
        else {
            cout << no << endl;
        }
    }

    }

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it
    Test case
»
2 years ago, hide # |
 
Vote: I like it -18 Vote: I do not like it

COULD YOU MAKE SAMPLES IN TASK C BETTER?

»
2 years ago, hide # |
Rev. 2  
Vote: I like it +77 Vote: I do not like it

I think problem D can be solved using binary search

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Do anyone know how can my O(n * log(n)^2) solution for problem D got TLE, since n * log(n)^2 is only around 10^8

247977945

Thank you so much

»
2 years ago, hide # |
 
Vote: I like it +15 Vote: I do not like it

Why does C have so many hacks?

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

What is an "easy" solution of problem E? I solved it exactly as this problem.

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    I also solved it using this idea, some people have solved it using small-to-large merging.

  • »
    »
    2 years ago, hide # ^ |
    Rev. 2  
    Vote: I like it +11 Vote: I do not like it

    I just saw your comment. I already posted my solution elsewhere but here it is again.

    It consists in one dfs. The idea is to keep track of which colors were accessible before on the dfs tree, with multiplicity. When branching, we set the current color to multiplicity = $$$1$$$ because it then loses its multiplicity (the path needs to be beautiful). But then it needs to regain its old multiplicity $$$+1$$$ when we end the dfs.

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

tourist C hacked

»
2 years ago, hide # |
 
Vote: I like it +8 Vote: I do not like it

D: For each index ,I gonna binary search on the answer. So consider position i, we have to check if after x seconds, we can eat this slime or not.

Im computing the left side first, that mean we considering only from 1 to i-1.

In the position i and after x second, there are two case:

  • All x-1 slimes to the left of it are the same , so the process can make the biggest slime is one of them.
  • Otherwise , the process after x seconds always make one slime that equal to the sum of all x-1 slime to the left of i-th one (this pretty obvious because at any time, you always exist a biggest slimes that near to another), then we just need to check that sum is bigger than size of i-th slimes or not

After finishing the left side, we do the same on the right side and compare the answer 247990076

E : I saw a lot of simpler solution for problem E (merge set/map on tree, etc...). Anyway, I have another technique for E that is "Auxiliary Tree", which was very useful and generic in some specific type of problems. You can find it here : https://mirror.codeforces.com/blog/entry/76955. This problem is similar to E, which you can try to solve it first : 613D - Kingdom and its Cities. You can read my solution for E here : 247980215.

Bonus

»
2 years ago, hide # |
 
Vote: I like it +5 Vote: I do not like it

What is the hack on C? Asking for a friend..

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    There seems to have been some issue with the system (probably related to Polygon), they're rejudged and most of the WA hacks are gone now.

»
2 years ago, hide # |
 
Vote: I like it +78 Vote: I do not like it

Unfortunately, hacks for C were judged incorrectly due to a very peculiar case of UB :(

We are sorry for that, all hacks have been rejudged. The solutions during the contest were judged correctly, so this affected only the hack phase.

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it +16 Vote: I do not like it

    Yeah, I was so confused. I literally went through my code a dozen times to see what was wrong. Thanks for the prompt fix.

»
2 years ago, hide # |
Rev. 2  
Vote: I like it -14 Vote: I do not like it

This comment has been deleted.

»
2 years ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

247954847 How this solution is getting TLE?

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

it may not appropriate to write such comment but

There is a case where my code for C is failing, i tried a lot to debug even stress testing but still couldn't found anything! it's failing on token 59831 on testcase 3

i don't know what's minor mistake i'm making 247924659

can anyone help me ?

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Can someone explain why I got TLE 247937101

»
2 years ago, hide # |
 
Vote: I like it +32 Vote: I do not like it

Approach for solving Problem E using auxillary tree and DP.

Suppose for each color $$$\textbf{c}$$$ we perform a $$$\texttt{dfs}$$$ on the tree and calculate number of nodes in subtree of node-$$$i$$$ of color $$$c$$$ such that none of it's ancestor has color $$$\textbf{c}$$$. Now we divide our answer in two cases:

Case-1: Node-R has color c
Case-2: Node R has color c

But this will take $$$O(n \cdot n)$$$ time. To optimise this, we compress the tree in a way such that we only take nodes of color $$$\textbf{c}$$$ (and some extra nodes less than equal to number of nodes of color $$$c$$$ in number) without losing any information that we could obtain for any node of color $$$\textbf{c}$$$. Now we can use the same logic without any problem.

For each color our complexity would then reduce to $$$O(\text{number of nodes of color c})$$$ (ignoring the extra $$$\log$$$ factor that comes because of $$$\text{lca}$$$ and $$$\textbf{sorting}$$$. Here is my submission for the problem.

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

is problem D prefix/suffix sum problem? then using binary search on pref(left), suff(right) then take lower..? but how to handle case where having same size adjacent?

  • »
    »
    2 years ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    I took care of this case by first going through the whole array and extracting the adjacent subarrays of same values (in the form of a vector of pairs (left index, right index)). Then, when binary searching, I would call the condition not met whenever the currently considered subarray lied in one of the precomputed "adjacent subarrays of same value".

    To handle this with a good complexity, I used another binary search to find the good (left index, right index) candidate with which I should check if I am inside or not. It's like geometry, so maybe there are easier ways to do so.

    • »
      »
      »
      2 years ago, hide # ^ |
      Rev. 2  
      Vote: I like it 0 Vote: I do not like it

      To make the implementation easier, you could use DP. Define $$$dp[i]$$$ to be the index of the leftmost consecutive identical element that ends at $$$i$$$.

      • If $$$a[i] == a[i - 1]$$$, then $$$dp[i] = dp[i - 1]$$$.
      • If $$$a[i] \neq a[i - 1]$$$, then $$$dp[i] = i$$$.

      Using this DP array, how to check if the range $$$[l, r]$$$ has identical elements? Just check if $$$dp[r] \leq l$$$. If yes, then the range has identical elements.

      Now, you can do a binary search on $$$[0, i - 1]$$$ to figure out the answer.

      Submission

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Any small counter testcase for my C 1923C - Find B; submission 247973573 as well? I have used all the TCs posted by AVdovin and 29logN

»
2 years ago, hide # |
Rev. 2  
Vote: I like it +1 Vote: I do not like it

Hello Everyone, Hope Everybody is doing great. I am stuck at problem C, can someone help me, what's wrong with my code

248047400 this code is after i have take the input array

for(int i=0;i<n;i++) { prefix[i+1]=prefix[i]+a[i]; } while(q--) { ll l,r; cin>>l>>r; ll k=r-l+1; if(k==1) cout<<"NO"<<endl; else { ll sum=k/2+2*((k+1)/2); if(sum<=prefix[r]-prefix[l-1]) cout<<"YES"<<endl; else cout<<"NO"<<endl; } }

According to me it should be correct,but failed at some 58k token.

»
2 years ago, hide # |
 
Vote: I like it +5 Vote: I do not like it

Why are red coders visible as rated contestants in the final standings?

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Video Editorial for problem C : YOUTUBE EDITORIAL LINK Audio : English

»
2 years ago, hide # |
 
Vote: I like it -41 Vote: I do not like it

unrated contest pleaseeeeee!!!!

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Hey folks, can someone please help me figure out why my solution for C fails in the second test case.

My code
»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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

»
2 years ago, hide # |
 
Vote: I like it +3 Vote: I do not like it

Who else failed the system test for problem C because they used 2e5 instead of 3e5 for the array size? (And somehow passed the pretests?)

»
2 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

lovely contest became specialist after a lot of struggle