Editorial for Bico and the Odd Numbers


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.

Submitting an official solution before solving the problem yourself is a bannable offence.

Türkçe

Soruda bize verilen \(\mathbf{N}\) sayısını kullanarak kaçıncı satırdaki son 3 sayının toplamını istediğini \(\mathbf{s}\) = \(\frac{\mathbf{N}+1}{2}\) yaparak bulabiliriz. \(\mathbf{s}\)'inci satırın son 3 elemanını da (\(\mathbf{s}\)+1)'inci satırın ilk elemanınından küçük en büyük 3 tek sayı olarak tanımlayabiliriz. Yani bana (\(\mathbf{s}\)+1)'inci satırdaki ilk sayı lazım. Bunu da \(\mathbf{x}\) = 1 + (2 + 2 \(\cdot\) (\(\mathbf{s}\) - 1)) \(\cdot\) \(\mathbf{s}\) formülüyle hesaplayabiliyoruz. Artık \(\mathbf{x}\)'ten küçük en büyük 3 tek sayının toplamını da (\(\mathbf{x}\) - 6) + (\(\mathbf{x}\) - 4) + (\(\mathbf{x}\) - 2) işlemini yaparak bulabilirim.


English

We can find which row has \(\mathbf{N}\) numbers written on it with the formula \(\mathbf{s}\) = \(\frac{\mathbf{N}+1}{2}\). We can also define the last 3 elements of the row \(\mathbf{s}\) as the greatest odd numbers that are less than the first number of the (\(\mathbf{s}\) + 1)th row. Now we can calculate the first number of (\(\mathbf{s}\) + 1)th row with \(\mathbf{x}\) = 1 + (2 + 2 \(\cdot\) (\(\mathbf{s}\) - 1)) \(\cdot\) \(\mathbf{s}\). All I have to do now is to sum the 3 greatest odd numbers which are less than \(\mathbf{x}\). That will be equal to (\(\mathbf{x}\) - 6) + (\(\mathbf{x}\) - 4) + (\(\mathbf{x}\) - 2).

Örnek Çözüm / Sample Solution
#include <bits/stdc++.h>

int main(){
    unsigned int n, step, end, t;
    std::cin >> t;
    while(t--){
        std::cin >> n;
        step = (n+1)/2;
        end = 1 + (2 + 2*(step-1)) * step;
        end = (end-2) + (end-4) + (end-6);
        if(n==1) std::cout << 1 << std::endl;
        else std::cout << end << std::endl;
    }
    return 0;
}