Cod sursa(job #1717438)

Utilizator EpictetStamatin Cristian Epictet Data 14 iunie 2016 21:28:43
Problema Trie Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
using namespace std;
ifstream fin ("trei.in");
ofstream fout ("trei.out");
long long N, P, st, dr, nr, nr2, nr3, p, aux, sol;
int V[1000010];

int main()
{
    for (int i = 1; nr3 <= 1000000; i++)
    {
        nr = nr2 = nr3 = 0;
        p = 1;
        aux = i;
        while (aux)
        {
            nr2 = nr2 + p * (aux % 2);
            p *= 10;
            aux /= 2;
        }

        while (nr2)
        {
            aux = aux * 10 + nr2 % 10;
            nr2 /= 10;
            nr++;
        }

        while (aux || nr)
        {
            nr3 = nr3 * 3 + aux % 10;
            aux /= 10;
            nr--;
        }

        if (nr3 <= 1000000) V[nr3] = 1;
    }

    for (int i = 1; i <= 1000000; i++)
    {
        V[i] += V[i-1];
    }

    fin >> N >> P;
    for (int i = 1; i <= N; i++)
    {
        fin >> st >> dr;
        if (V[dr] - V[st - 1] >= P) sol++;
    }

    fout << sol << '\n';
    fout.close();
    return 0;
}