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;}
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; }