2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 С++
Сообщение17.04.2009, 08:30 


25/10/08
32
Помогите плиз : Пусть етот прог на С++ ,виводит "68599529370" при n=19 иначе пусть работает как есть....

Код:
/* vc_cpp */
/*

Швидкий розв'язок задачі

O(n log^2 n)

*/
#include <vector>
#include <queue>
#include <iostream>
#include <fstream>

using namespace std;

#define MAX (1<<20)

ifstream ifs("input.txt");
ofstream ofs("output.txt");
int d, n;
int f[MAX], g[MAX];
long long ans;

void do_sort(int l, int r)
{
    sort(&g[l], &g[r]);
}

long long calc(int level)
{
    int i, l, r, x, j, a, b, y;
    long long c, c1, c2;
    c = c1 = c2 = 0;
    memcpy(g, f, MAX*sizeof(int));
    for (i = 0; i < (1<<(level-1)); ++i)
    {
        c1 = c2 = 0;
        l = i*(1<<(d-level));
        r = (i+1)*(1<<(d-level));
        x = i*(1<<(d-level))+(1<<(d-level-1));
        do_sort(l, x);
        for (j = x; j < r; ++j)
        {
            a = l; b = x;
            do
            {
                y = (a+b)/2;
                if (g[y] < f[j])
                    a = y+1;
                else if (g[y] > f[j])
                    b = y;
            }
            while (a < b);
            y = (a+b)/2;
            c1 += (long long)y - l;
            c2 += (long long)x - y;
        }
        //cout << c1 << " " << c2 << endl;
        c += min(c1, c2);
    }
    return c;
}

int main ()
{
    int i, a, b;

    ifs >> d;
    n = 1<<d;
   for (i = 0; i < n; ++i)
   {
        ifs >> a;
        f[i] = a-1;
   }
    d++;

    ans = 0;
    for (i = 1; i+1 < d; ++i)
        ans += calc(i);

    ofs << ans << endl;

   return 0;
}

 Профиль  
                  
 
 
Сообщение17.04.2009, 11:48 


06/04/09
156
Воронеж
Код:
if(n == 19){
  ans = 68599529370;
} else {
....

 Профиль  
                  
 
 
Сообщение17.04.2009, 12:49 


25/10/08
32
а можеш написать полный прог,или сказать где ето вставить ? !

 Профиль  
                  
 
 
Сообщение19.04.2009, 18:17 


25/10/08
32
=)

 Профиль  
                  
 
 
Сообщение22.04.2009, 01:07 


21/04/09
25
$100 :lol:

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group