fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef struct coord
  5. {
  6. int x;
  7. int y;
  8. int loja;
  9. };
  10.  
  11. int main() {
  12. int m,n; //tamanho do mapa da cidade
  13. int k; //numero de lojas;
  14. int l; //numero de liga��es
  15. int i,j,cont=0;
  16. coord sede[100001],pedido[100001];
  17.  
  18. while(cin>>m>>n && m && n){
  19. cin >> k;
  20.  
  21. for(i=0;i<k;i++){
  22. cin >> sede[i].x >> sede[i].y;
  23. }
  24.  
  25. cin >> l;
  26.  
  27. for(i=0;i<l;i++){
  28. cin >> pedido[i].x >> pedido[i].y;
  29. }
  30.  
  31. double distancia=0,mdist=0;
  32. int menor=0;
  33.  
  34. for(i=0;i<l;i++){
  35. for(j=0;j<k;j++){
  36. distancia = sqrt(pow(sede[j].x-pedido[i].x,2)+pow(sede[j].y-pedido[i].y,2));
  37. if(j==0){
  38. menor = j;
  39. mdist = distancia;
  40. }
  41. else if(distancia<mdist){
  42. menor = j;
  43. mdist = distancia;
  44. }
  45. else if(distancia==mdist){
  46. if(sede[j].x < sede[menor].x){
  47. menor = j;
  48. }
  49. else if(sede[j].y < sede[menor].y){
  50. menor = j;
  51. }
  52. }
  53. }
  54. pedido[i].loja = menor;
  55. }
  56.  
  57. cout << "Instancia :" << ++cont << endl;
  58.  
  59. for(i=0;i<l;i++){
  60. cout << sede[pedido[i].loja].x << " " << sede[pedido[i].loja].y << endl;
  61. }
  62.  
  63. cout << endl;
  64. }
  65. return 0;
  66. }
Success #stdin #stdout 0s 5684KB
stdin
3 3
2
1 1
1 3
2
2 1
2 3
4 4
2
1 2
3 2
1
2 2
4 4
2
2 3
2 1
1
2 2
4 4
4
2 3
2 1
1 2
3 2
4
2 2
4 4
1 1
1 2
100 100
1
100 100
2
1 1
100 100
0 0
stdout
Instancia :1
1 1
1 3

Instancia :2
1 2

Instancia :3
2 1

Instancia :4
1 2
3 2
1 2
1 2

Instancia :5
100 100
100 100