ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1209. 1, 10, 100, 1000...

Why time limit exceeded in test#3 ?
Послано Shadab 26 апр 2016 00:38
My Code:
#include <bits/stdc++.h>
using namespace std;

int main()
{
    //freopen("in.txt","r", stdin);

    unsigned long long int n,k,x,j; cin >> n;
    for(int i=1; i<=n; i++)
    {
        cin >> k;
        x=1;
        j=0;
        while(j<k)
        {
            j+=x;
            if(j<k) x++;
        }
        x--;

        if(j-k < x) cout << 0 << " ";
        else cout << 1 << " ";
    }
    cout << endl;

    return 0;
}

Edited by author 26.04.2016 00:41
Re: Why time limit exceeded in test#3 ?
Послано ToadMonster 26 апр 2016 10:32
Optimal solution description:
http://acm.timus.ru/forum/thread.aspx?id=30833&upd=635783259604987487

Not optimal solution:
To precalculate postions of "1" once, save them into container with quick lookup (sorted vector+binary saearch/set/unordered_set) and check if position is in container
Re: Why time limit exceeded in test#3 ?
Послано Shadab 26 апр 2016 10:42
Thanx :)