Показать сообщение отдельно
Старый 15.12.2013, 23:46   #55
genroelgvozo
Нуждающийся
 
Регистрация: 08.05.2008
Сообщений: 87
Написано 9 полезных сообщений
(для 15 пользователей)
Ответ: Олимпиада по программированию

Сообщение от Nikich Посмотреть сообщение
Допилил таки. Оказалось, что беда была с vector, а именно с его медлительностью.
Итоговый код(как говорилось ранее, требуется самое короткое решение):
#include <fstream>

using namespace std;

typedef long long x;
x N,M,K,j,I,A[11];

char p[2<<17][10];

x z(x i, x l, x r)
{
x m=x(2)<<35,t;
if (i>=M || l>=r)
m=0;
else
{
x L=l,R;
for (x c=48;c<K;c++)
{
for (R=L;R<r && p[R][i]==c; R++)
;
if (t=z(i+1,L,R), t<m)
m=t;
L=R;
}
}
return m+A[i]*(r-l);
}

int main()
{
fstream i("input.txt"),o("output.txt");
i>>N>>M>>K;
K+=48;
for (;I<M;I++)
i>>A[I+1];
for (;I>1;I--)
A[i]-=A[I-1];
for (;j<N;j++)
i>>p[j];
o<<z(0,0,N);
}
Обозначать тип за букву x, это жесть . Хотя бы lli, более понятное и используемое сокращение для long long int. хотя дело вкуса. но я ужаснулся взглянув на код))
__________________
(Offline)
 
Ответить с цитированием