Example #1
0
void qs(int l,int r)
{
 int w,x,j;
 i=l;
 j=r;
 p=(l+r)/2;
 x=mas[p];
 do
 {
  while (mas[i]<x)
  {
   i++;
  };
  while (x<mas[j])
  {
   j--;
  };
  if (i<=j)
  {
   w=mas[i];
   mas[i]=mas[j];
   mas[j]=w;
   i++;
   j--;
  }
 }
 while (i<=j);
 if (l<j) {qs(l,j);};
 if (i<r) {qs(i,r);};
}
Example #2
0
void StickerSetInner::gotSet(const MTPmessages_StickerSet &set) {
	_pack.clear();
	if (set.type() == mtpc_messages_stickerSet) {
		const MTPDmessages_stickerSet &d(set.c_messages_stickerSet());
		const QVector<MTPDocument> &v(d.vdocuments.c_vector().v);
		_pack.reserve(v.size());
		for (int32 i = 0, l = v.size(); i < l; ++i) {
			DocumentData *doc = App::feedDocument(v.at(i));
			if (!doc || !doc->sticker) continue;
			
			_pack.push_back(doc);
		}
		if (d.vset.type() == mtpc_stickerSet) {
			const MTPDstickerSet &s(d.vset.c_stickerSet());
			_setTitle = qs(s.vtitle);
			_title = st::boxTitleFont->m.elidedText(_setTitle, Qt::ElideRight, width() - st::btnStickersClose.width - st::boxTitlePos.x());
			_setShortName = qs(s.vshort_name);
			_setId = s.vid.v;
			_setAccess = s.vaccess_hash.v;
		}
	}

	if (_pack.isEmpty() || _setShortName.isEmpty()) {
		App::wnd()->showLayer(new ConfirmBox(lang(lng_stickers_not_found), true), true);
	} else {
		int32 rows = _pack.size() / StickerPanPerRow + ((_pack.size() % StickerPanPerRow) ? 1 : 0);
		resize(st::stickersPadding + StickerPanPerRow * st::stickersSize.width(), rows * st::stickersSize.height() + st::stickersAddOrShare);
	}
	_loaded = true;

	emit updateButtons();
}
Example #3
0
int qs(int* mas, int left, int right)
{
    int j = right, i = left, p = mas[(left+right/2)];

    do
	{ 
	    while (mas[i] < p) i++;
        while (mas[j] > p) j--;
 
        if (i < j)
        {
			int buf = mas[i];
			mas[i] = mas[j];
			mas[j] = buf;
            i++;
            j--;
		}
        
    }
	while (i <= j);
 
    if (i < right)
        qs(mas, i, right);
    if (left < j)
        qs(mas, left,j);
}	
Example #4
0
int qs(int a[],int i,int t)
{
if(i==t)
{a[i];}
else
{
int j,k,temp;
k=t;
for(j=i;j<=t;j++)
{if(a[j]>a[i])
{while(k!=j)
{if(a[k]<a[i])
{temp=a[k];
a[k]=a[i];
a[i]=temp;
k--;
break;}
k--;}}
if(k==j)
{temp=a[i];
a[i]=a[k];
a[k]=temp;
break;}

qs(a,i,k-1);
qs(a,k,t);
}}
for(i=0;i<10;i++)
printf("\n %d",a[i]);
return 0;}
Example #5
0
void qs(ITEM *item, int left, int right)
/**********************************************************************
        this is the quick sort subroutine - it returns the values in
        an array from high to low.
**********************************************************************/
{
  register int i,j;
  ITEM x,y;

  i=left;
  j=right;
  x=item[(left+right)/2];

  do {
    while(item[i].Rank<x.Rank && i<right) i++;
    while(x.Rank<item[j].Rank && j>left) j--;

    if (i<=j) {
      y=item[i];
      item[i]=item[j];
      item[j]=y;
      i++;
      j--;
    }
  } while (i<=j);

  if(left<j) qs(item,left,j);
  if(i<right) qs(item,i,right);

}
Example #6
0
void qs(list *l, int left, int right){
    if (left < right){
        int part = partition(l, left, right);
        qs(l, left, part-1);
        qs(l, part+1, right);
    }
}
//MÉTODO TIEMPO MILISEGUNDOS
void qs(int lista[],int fTempite_left,int fTempite_rig)
	{
	    int left,rig,temporal,pivote;
	    left=fTempite_left;
	    rig = fTempite_rig;
	    pivote = lista[(left+rig)/2];
	 
	    do{
	        while(lista[left]<pivote && left<fTempite_rig)left++;
	        while(pivote<lista[rig] && rig > fTempite_left)rig--;
	        if(left <=rig){
	            temporal= lista[left];
	            lista[left]=lista[rig];
	            lista[rig]=temporal;
	            left++;
	            rig--;
	        }
	    }
		while(left<=rig);
    	if(fTempite_left<rig){
			qs(lista,fTempite_left,rig);
		}
	    if(fTempite_rig>left){
			qs(lista,left,fTempite_rig);
		}
	}
Example #8
0
void qs(int a[], int l, int r)
{
    if(l == r || l>r)
        return;

    if((r-l) == 1)
    {
        if(a[l] > a[r])
            swap(&a[l],&a[r]);
        return;
    }

    int index = pivot(a,l,r,2);
    swap(&a[index],&a[l]);
    int lt = l+1, rt = r;
    while(lt < rt)
    {
        while(a[lt] < a[l])
            lt++;
        while(a[rt] > a[l])
            rt--;
        if(lt < rt)
        {
            swap(&a[lt],&a[rt]);
            lt++;
            rt--;
        }

    }
    if(l != rt)
        swap(&a[l],&a[rt]);
    qs(a,l,rt-1);
    qs(a,rt+1,r);
    return;
}
void qs (char *items, int left, int right) 
{
    int i, j; 
    int x, y; 
    
    i = left; 
    j = right; 
    
    x = items[ (left + right) / 2]; 
    
    do {
        while ((items[i] < x) && (i < right)) i++; 
        while ((x < items[j]) && (j > left)) j--; 
        
        if (i <= j) {
            y = items[i];
            items[i] = items[j];
            items[j] = y; 
            i++; j--; 
            }
            
        } while (i <= j); 
        
        if (left < j) qs (items, left, j); 
        if (i < right) qs (items, i, right); 
        
}
Example #10
0
File: qs.c Project: jackpelf/store
int qs(int l, int r)
{
	if(l < r)
	{
		int key = buf[l];
		int low = l;
		int high = r;
		while(low < high)
		{
			while(low < high && buf[high] >= key)
			{
				high --;
			}
			buf[low] = buf[high];
			while(low < high && buf[low] <= key)
			{
				low++;	
			}
			buf[high] = buf[low];
		}
//		printf("low = high: %d\n", low);
		buf[low] = key;
		qs(l, low-1);
		qs(low+1, r);
	}
}
Example #11
0
void qs( int array[], int left_limit, int right_limit) {
    int left,
        right,
        temporal,
        pivot;

    left = left_limit;
    right = right_limit;
    pivot = array[(left+right)/2];

    do {
      while( array[left] < pivot && left < right_limit ) left++;
      while( pivot < array[right] && right > left_limit) right--;
      if ( left <= right ) {
        temporal = array[left];
        array[left]=array[right];
        array[right]=temporal;
        left++;
        right--;
      }

    } while( left <= right );
    if ( left_limit < right ) {
      qs( array, left_limit, right);
    }
    if( right_limit > left ) {
      qs( array, left, right_limit );
    }
}
Example #12
0
File: r.c Project: neveralso/ACM
int qs(int s,int t)
{
    int m,y,i,j,temp;
    m=rand()%(t-s+1)+s;
    temp=data[m];
    data[m]=data[s];
    data[s]=temp;
    temp=num[m];
    num[m]=num[s];
    num[s]=temp;
    y=data[s];
    i=s;
    j=t+1;
    for(;i<j;)
    {
        for(i++;data[i]<y;i++);
        for(j--;data[j]>y;j--);
        if(i<j)
        {
            temp=data[i];
            data[i]=data[j];
            data[j]=temp;
            temp=num[i];
            num[i]=num[j];
            num[j]=temp;
        }
    }
    data[s]=data[j];
    data[j]=y;
    temp=num[s];
    num[s]=num[j];
    num[j]=temp;
    if(s<j-1)qs(s,j-1);
    if(t>j+1)qs(j+1,t);
}
Example #13
0
void qs(int *arr, int begin, int end){
	if(end - begin < 2)
		return;
	
	int pivot = partition(arr, begin, end);
	qs(arr, begin, pivot);
	qs(arr, pivot + 1, end);
}
Example #14
0
int qs(int *dat,int begin,int end)
{
	printf("data = 0x%x,begin = %d,end = %d \n",dat,begin,end);
	if(begin >= (end-1)) return 1;
	int *data = dat;
	int num = partion_mid(data,begin,end);
	qs(data,begin,num-1);
	qs(data,num+1,end);
	return 1;
}
Example #15
0
void qs ( msg t[], int start, int end )		//递归实现快排
{
	int mid;
	if ( start < end )
	{
		mid = Qsort(t,start,end);
		qs ( t,start,mid-1);
		qs ( t,mid+1,end);
	}
}
Example #16
0
void qs(int a[],int p,int q)
{
     if(p<q)
     {
      part(a,p,q);
      int b=s,c=t;
      qs(a,p,b-1);
      qs(a,b+1,c-1);
      qs(a,c+1,q);
     }
}
void qs(int v[],int l,int r){
    int i, j,loop, pivo, y;
    i = l;
    j = r;
    //if(l!=r){ 
       pivo = gerar_pivo(v,l,r);
       PIVO p;
    
       p = achar_p(v,l,r,pivo);

       y = v[l];
       v[l]=v[p.pos];
       v[p.pos] = y; 
    
    do{
        while(i<r &&v[i]<=v[l]) i++;
        while(j>l && v[j]>v[l]) j--;
        if(i<j){
            y = v[i];
            v[i]=v[j];
            v[j] = y;
            i++; j--;
            //printf("xxx\n");
        }
    }while(i<j);
    y = v[l];
    v[l]=v[j];
    v[j] = y;

    printf("(%d,%d) %diiii %djjj %dlll %drrr \n", p.elem,j+1, i,j,l,r );
    for(loop=0;loop<5;loop++){
    	printf("%d \n",v[loop]);
    }
    
    /*else {printf("(%d,%d) %dyy\n", v[l],l+1, l );
         for(loop=0;loop<5;loop++){
    	printf("%d ",v[loop]);
    }
    }*/
    if(r==i)printf("(%d,%d) %diiii %djjj %dlll %drrr \n", v[j+1],j+2, i,j,l,r );
    if(l<(j-1)) qs(v,l,j-1);
    if(i<r){
        if((r+1)%2!=0){ 
        printf("%d %d entra impar\n",i,r);
    	qs(v,i+1,r);}
    	else {
    		printf("%d %d entra par\n",i,r);
    	    qs(v,i,r);
    	}
    }
}
Example #18
0
void qs(int* array, int n) {
    int pivot = array[n / 2];
    int left = 0, right = n;
    while (left < right) {
        if (array[left] <= pivot)
            ++left;
        else if (array[right - 1] > pivot)
            --right;
        else
            iswap(&array[left], &array[right - 1]);
    }
    qs(&array[0], left);
    qs(&array[left], n - left);
}
Example #19
0
HistoryMessage::HistoryMessage(
	not_null<History*> history,
	const MTPDmessage &data)
: HistoryItem(
		history,
		data.vid.v,
		data.vflags.v,
		data.vdate.v,
		data.has_from_id() ? data.vfrom_id.v : UserId(0)) {
	CreateConfig config;

	if (data.has_fwd_from() && data.vfwd_from.type() == mtpc_messageFwdHeader) {
		auto &f = data.vfwd_from.c_messageFwdHeader();
		config.originalDate = f.vdate.v;
		if (f.has_from_id() || f.has_channel_id()) {
			config.senderOriginal = f.has_channel_id()
				? peerFromChannel(f.vchannel_id)
				: peerFromUser(f.vfrom_id);
			if (f.has_channel_post()) config.originalId = f.vchannel_post.v;
			if (f.has_post_author()) config.authorOriginal = qs(f.vpost_author);
			if (f.has_saved_from_peer() && f.has_saved_from_msg_id()) {
				config.savedFromPeer = peerFromMTP(f.vsaved_from_peer);
				config.savedFromMsgId = f.vsaved_from_msg_id.v;
			}
		}
	}
	if (data.has_reply_to_msg_id()) config.replyTo = data.vreply_to_msg_id.v;
	if (data.has_via_bot_id()) config.viaBotId = data.vvia_bot_id.v;
	if (data.has_views()) config.viewsCount = data.vviews.v;
	if (data.has_reply_markup()) config.mtpMarkup = &data.vreply_markup;
	if (data.has_edit_date()) config.editDate = data.vedit_date.v;
	if (data.has_post_author()) config.author = qs(data.vpost_author);

	createComponents(config);

	if (data.has_media()) {
		setMedia(data.vmedia);
	}

	auto text = TextUtilities::Clean(qs(data.vmessage));
	auto entities = data.has_entities()
		? TextUtilities::EntitiesFromMTP(data.ventities.v)
		: EntitiesInText();
	setText({ text, entities });

	if (data.has_grouped_id()) {
		setGroupId(MessageGroupId::FromRaw(data.vgrouped_id.v));
	}
}
Example #20
0
File: qs1.c Project: diogogmt/qs
void qs (int* items, int beg, int len) {
  if (len <= 1) {
    return;
  }
  int end = len - 1 + beg;
  int pivPos = rand() % (end - beg) + beg;
  int pivot = items[pivPos];

  swap(items, pivPos, end);
  int moves = partition(items, beg, end, pivot);
  swap(items, moves, end);

  qs(items, beg, moves - beg);
  qs(items, moves + 1, end - moves);
}
// assert_decl             = "assert" "(" identifier "," expression ")".
bool adam_test_parser::is_assert_decl() {
    if (is_keyword(assert_k)) {
        require_token(open_parenthesis_k);
        name_t name;
        if (!is_identifier(name))
            throw_exception("sheet name expected");
        queryable_sheet_t& qs(sheet_from_name(name));
        require_token(comma_k);
        array_t expression;
        if (!is_expression(expression))
            throw_exception("expression expected");
        require_token(close_parenthesis_k);
        any_regular_t result = qs.inspect(expression);
        bool success = result.cast<bool>();
        out_m << "\n### assert " << (success ? std::string("succeeded: ") : std::string("failed: "))
#if defined(ADOBE_STD_SERIALIZATION)
              << begin_asl_cel << expression << end_asl_cel
#endif
              << " in sheet " << name << std::endl;
        if (!success)
            all_checks_passed_m = false;
        return true;
    }
    return false;
}
Example #22
0
void HistoryMessage::applyEdition(const MTPDmessage &message) {
	int keyboardTop = -1;
	//if (!pendingResize()) {// #TODO edit bot message
	//	if (auto keyboard = inlineReplyKeyboard()) {
	//		int h = st::msgBotKbButton.margin + keyboard->naturalHeight();
	//		keyboardTop = _height - h + st::msgBotKbButton.margin - marginBottom();
	//	}
	//}

	if (message.has_edit_date()) {
		_flags |= MTPDmessage::Flag::f_edit_date;
		if (!Has<HistoryMessageEdited>()) {
			AddComponents(HistoryMessageEdited::Bit());
		}
		auto edited = Get<HistoryMessageEdited>();
		edited->date = message.vedit_date.v;
	}

	TextWithEntities textWithEntities = { qs(message.vmessage), EntitiesInText() };
	if (message.has_entities()) {
		textWithEntities.entities = TextUtilities::EntitiesFromMTP(message.ventities.v);
	}
	setReplyMarkup(message.has_reply_markup() ? (&message.vreply_markup) : nullptr);
	refreshMedia(message.has_media() ? (&message.vmedia) : nullptr);
	setViewsCount(message.has_views() ? message.vviews.v : -1);
	setText(textWithEntities);

	finishEdition(keyboardTop);
}
Example #23
0
void applyPeerCloudDraft(PeerId peerId, const MTPDdraftMessage &draft) {
	const auto history = App::history(peerId);
	const auto textWithTags = TextWithTags {
		qs(draft.vmessage),
		ConvertEntitiesToTextTags(
			draft.has_entities()
			? TextUtilities::EntitiesFromMTP(draft.ventities.v)
			: EntitiesInText())
	};
	auto replyTo = draft.has_reply_to_msg_id() ? draft.vreply_to_msg_id.v : MsgId(0);
	if (history->skipCloudDraft(textWithTags.text, replyTo, draft.vdate.v)) {
		return;
	}
	auto cloudDraft = std::make_unique<Draft>(
		textWithTags,
		replyTo,
		MessageCursor(QFIXED_MAX, QFIXED_MAX, QFIXED_MAX),
		draft.is_no_webpage());
	cloudDraft->date = draft.vdate.v;

	history->setCloudDraft(std::move(cloudDraft));
	history->createLocalDraftFromCloud();
	if (Auth().supportMode()) {
		history->updateChatListEntry();
		Auth().supportHelper().cloudDraftChanged(history);
	} else {
		history->updateChatListSortPosition();
	}

	if (const auto main = App::main()) {
		main->applyCloudDraft(history);
	}
}
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
    StringProvider::loadTemplate();

    ui->setupUi(this);

    initLayout();

    sqlLiteProvider = new SqlLiteProvider();
    connect(sqlLiteProvider, SIGNAL(updateEventLogUI(QList<EventLog>)),
            this, SLOT(sloUpdateEventLogUI(QList<EventLog>)));
    sqlLiteProvider->loadDatabase();

    httpProvider = new HttpProvider();
    connect(httpProvider, SIGNAL(sigHttpFinished(QNetworkReply*)),
            this, SLOT(sloHttpFinished(QNetworkReply*)));

    connect(ui->tableScan, SIGNAL(signalInsertLog(EventLog)),
            this, SLOT(slotInsertLog(EventLog)));

    // Load metascan online key
    QSettings qs(SETTINGS_DOMAIN, SETTINGS_USER);
    QString moKey = qs.value(SETTINGS_MO_KEY).toString();
    StringProvider::METASCAN_ONLINE_KEY = moKey;
    if(moKey.isEmpty()) {
        qDebug() << "moKey = NULLLLL";
        SettingsDialog* dialogSettings = new SettingsDialog(this);
        dialogSettings->setModal(true);
        dialogSettings->show();
    } else {
        qDebug() << "moKey = " << moKey;
    }
}
Example #25
0
void CodeWidget::gotPassword(const MTPaccount_Password &result) {
	Expects(result.type() == mtpc_account_password);

	stopCheck();
	_sentRequest = 0;
	const auto &d = result.c_account_password();
	getData()->pwdRequest = Core::ParseCloudPasswordCheckRequest(d);
	if (!d.has_current_algo() || !d.has_srp_id() || !d.has_srp_B()) {
		LOG(("API Error: No current password received on login."));
		_code->setFocus();
		return;
	} else if (!getData()->pwdRequest) {
		const auto box = std::make_shared<QPointer<BoxContent>>();
		const auto callback = [=] {
			Core::UpdateApplication();
			if (*box) (*box)->closeBox();
		};
		*box = Ui::show(Box<ConfirmBox>(
			lang(lng_passport_app_out_of_date),
			lang(lng_menu_update),
			callback));
		return;
	}
	getData()->hasRecovery = d.is_has_recovery();
	getData()->pwdHint = qs(d.vhint);
	getData()->pwdNotEmptyPassport = d.is_has_secure_values();
	goReplace(new Intro::PwdCheckWidget(parentWidget(), getData()));
}
Example #26
0
 bool BFRRT::localSolve(Motion *sm, base::State *is, Motion *gm)
 {
   int dim = (int) si_->getStateDimension();
   Eigen::VectorXd qs(dim), qg(dim);
   memcpy(qs.data(),
       is == NULL ?
           sm->state->as<ompl::base::RealVectorStateSpace::StateType>()->values :
           is->as<ompl::base::RealVectorStateSpace::StateType>()->values,
       sizeof(double) * qs.rows());
   Eigen::MatrixXd local_path;
   exotica::EReturn ret = FlexiblePlanner::localSolve(qs, qg, local_path);
   if (ok(ret))
   {
     /* Local planner succeeded */
     if (is)
     {
       gm->inter_state = si_->allocState();
       si_->copyState(gm->inter_state, is);
     }
     gm->internal_path.reset(new Eigen::MatrixXd(local_path));
     gm->parent = sm;
     qg = local_path.row(local_path.rows() - 1).transpose();
     memcpy(
         gm->state->as<ompl::base::RealVectorStateSpace::StateType>()->values,
         qg.data(), sizeof(double) * qg.rows());
   }
   return ret == exotica::SUCCESS ? true : false;
 }
void GifsListWidget::inlineResultsDone(const MTPmessages_BotResults &result) {
	_footer->setLoading(false);
	_inlineRequestId = 0;

	auto it = _inlineCache.find(_inlineQuery);
	auto adding = (it != _inlineCache.cend());
	if (result.type() == mtpc_messages_botResults) {
		auto &d = result.c_messages_botResults();
		Auth().data().processUsers(d.vusers);

		auto &v = d.vresults.v;
		auto queryId = d.vquery_id.v;

		if (it == _inlineCache.cend()) {
			it = _inlineCache.emplace(_inlineQuery, std::make_unique<InlineCacheEntry>()).first;
		}
		auto entry = it->second.get();
		entry->nextOffset = qs(d.vnext_offset);
		if (auto count = v.size()) {
			entry->results.reserve(entry->results.size() + count);
		}
		auto added = 0;
		for_const (const auto &res, v) {
			if (auto result = InlineBots::Result::create(queryId, res)) {
				++added;
				entry->results.push_back(std::move(result));
			}
		}

		if (!added) {
			entry->nextOffset = QString();
		}
	} else if (adding) {
Example #28
0
 vector<vector<string>> solveNQueens(int n) {
     vector<int> qs(n, -1);
     vector<vector<string>> ret;
     //rows numbered 0 to n-1
     solveNQueens__(0,n,qs, ret);
     return ret;
 }
Example #29
0
//sortowanie w³aœciwe QS
void qs(int *t, int l, int p) {
	int v = t[(l + p) / 2], i = l, j = p;

	do {
		while (t[i] < v)
			i++;
		while (t[j] > v)j--;
		if (i <= j) {
			swap(t[i], t[j]);
			i++;
			j--;
		}
	} while (i <= j);
	if (j > l) qs(t, l, j);
	if (i < p) qs(t, i, p);
}
Example #30
0
QStringList UimInputContextPlugin::createImList() const
{
    QStringList lst;

    // default
    lst.append( "uim" );
#ifdef ENABLE_DEBUG
    qDebug( "name = uim" );
#endif

#if UIM_QT_LIST_SUBIM_AS_QTIM
    uim_context tmp_uc = uim_create_context( 0, "UTF-8",
                         0, 0, uim_iconv, 0 );
    int nr = uim_get_nr_im( tmp_uc );
    if ( uimReady )
    {
        for ( int i = 0; i < nr; i++ )
        {
            const char *name = uim_get_im_name( tmp_uc, i );
            QString qs( name );
            qs = "uim-" + qs;
            lst << qs;

#ifdef ENABLE_DEBUG
            qDebug( "name = %s", qs.toUtf8().data() );
#endif
        }
    }
    uim_release_context( tmp_uc );
#endif

    return lst;
}