int main(){
	int i;
	long long int X, Y, resposta=0;
        scanf("%d %d",&C, &T);
	for(i=1;i<=C;i++){
		scanf("%lld", &raio[i]);
		raio[i]=raio[i]*raio[i];
	}
	for(i=1;i<=T;i++){	
		scanf("%lld %lld",&X,&Y);
		resposta=resposta + alvo(X*X+Y*Y);
	}
	
	printf("%lld\n", resposta);
	
	return 0;}
Esempio n. 2
0
File: BD.cpp Progetto: tureba/CBIR
QStringList BD::buscaR(QImage imagem, float r)
{
	if ((imagem.isNull()) || (r <= .0))
		return QStringList();

	QStringList lista;
	QString hash = calcHash(imagem);
	QVector<float> VC;
	if (usaHistograma)
		VC += extrairHistograma(imagem);
	if (usaMatrizCoOcorrencia)
		VC += extrairMatrizCoOcorrencia(imagem);
	HImagem alvo(hash, VC);
	stResult<HImagem> * resultado;

	switch (fDist) {
	case fDistMinkowski: {
			stDummyTree<HImagem, HImagemCmpMinkowski> arvore(new stPlainDiskPageManager("/tmp/CBIR.db", 1024));
			for (auto it = imagens.begin(); it != imagens.end(); it++)
				arvore.Add(new HImagem(*it, buscaVC(*it)));
			resultado = arvore.RangeQuery(&alvo, r);

			for (unsigned int i = 0; i < resultado->GetNumOfEntries(); i++)
				lista.append((*resultado)[i].GetObject()->_hash);
			delete resultado;
		}
		break;
	case fDistItakuraSaito: {
			stDummyTree<HImagem, HImagemCmpItakuraSaito> arvore(new stPlainDiskPageManager("/tmp/CBIR.db", 1024));
			for (auto it = imagens.begin(); it != imagens.end(); it++)
				arvore.Add(new HImagem(*it, buscaVC(*it)));
			resultado = arvore.RangeQuery(&alvo, r);

			for (unsigned int i = 0; i < resultado->GetNumOfEntries(); i++)
				lista.append((*resultado)[i].GetObject()->_hash);
			delete resultado;
		}
		break;
	case fDistKullbackLeibler: {
			stDummyTree<HImagem, HImagemCmpKullbackLeibler> arvore(new stPlainDiskPageManager("/tmp/CBIR.db", 1024));
			for (auto it = imagens.begin(); it != imagens.end(); it++)
				arvore.Add(new HImagem(*it, buscaVC(*it)));
			resultado = arvore.RangeQuery(&alvo, r);

			for (unsigned int i = 0; i < resultado->GetNumOfEntries(); i++)
				lista.append((*resultado)[i].GetObject()->_hash);
			delete resultado;
		}
		break;
	case fDistCosseno: {
			stDummyTree<HImagem, HImagemCmpCosseno> arvore(new stPlainDiskPageManager("/tmp/CBIR.db", 1024));
			for (auto it = imagens.begin(); it != imagens.end(); it++)
				arvore.Add(new HImagem(*it, buscaVC(*it)));
			resultado = arvore.RangeQuery(&alvo, r);

			for (unsigned int i = 0; i < resultado->GetNumOfEntries(); i++)
				lista.append((*resultado)[i].GetObject()->_hash);
			delete resultado;
		}
		break;
	}

	return lista;
}