Kevin_Zhang

Untitled

Jan 19th, 2022
957
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.17 KB | None | 0 0
  1. #include<stdbool.h>
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4.  
  5. int n, x[10] = {}, y[10] = {}, capacity[10] = {};
  6.  
  7. bool compare(int i, int j, int posx, int posy) {
  8.     if (i == -1) return false;
  9.     if (j == -1) return true;
  10.     int di = abs(x[i] - posx) + abs(y[i] - posy),
  11.             dj = abs(x[j] - posx) + abs(y[j] - posy);
  12.     if (di != dj) return di < dj;
  13.     if (x[i] != x[j]) return x[i] < x[j];
  14.     return y[i] < y[j];
  15. }
  16. int main(){
  17.     scanf("%d", &n);
  18.     for(int i = 0; i < n; i++){
  19.         scanf("%d%d%d", &x[i], &y[i], &capacity[i]);
  20.     }
  21.     int m, x_bicycle, y_bicycle, distance[10] = {}, bicycle[10] = {};
  22.     scanf("%d", &m);
  23.     for(int i = 0; i < m; i++){
  24.         scanf("%d%d", &x_bicycle, &y_bicycle);
  25.                 int min_parkinglot = -1;
  26.                 for (int j = 0;j < n;++j) {
  27.                     if (capacity[j] == 0) continue;
  28.                     if (compare(j, min_parkinglot, x_bicycle, y_bicycle))
  29.                         min_parkinglot = j;
  30.                 }
  31. //        int min_distance = 20000;
  32. //        int min_x = 10000, min_y = 10000, min_parkinglot = -1;
  33. //        for(int j = 0; j < n; j++){
  34. //            if(capacity[j] == 0){
  35. //                continue;
  36. //            }
  37. //            distance[j] = abs(x_bicycle-x[j]) + abs(y_bicycle-y[j]);
  38. //            if(distance[j] == min_distance){
  39. //                if(x[j] == min_x){
  40. //                    if(y[j] < min_y){
  41. //                        min_distance = distance[j];
  42. //                        min_x = x[j];
  43. //                        min_y = y[j];
  44. //                        min_parkinglot = j;
  45. //                    }
  46. //                }
  47. //                else if(x[j] < min_x){
  48. //                    min_distance = distance[j];
  49. //                    min_x = x[j];
  50. //                    min_y = y[j];
  51. //                    min_parkinglot = j;
  52. //                }
  53. //            }
  54. //            else if(distance[j] < min_distance){
  55. //                min_distance = distance[j];
  56. //                min_x = x[j];
  57. //                min_y = y[j];
  58. //                min_parkinglot = j;
  59. //            }
  60. //        }
  61.         capacity[min_parkinglot]--;
  62.         bicycle[min_parkinglot]++;
  63.     }
  64.     for(int i =0; i < n; i++){
  65.         printf("%d\n", bicycle[i]);
  66.     }
  67.     return 0;
  68. }
  69.  
Advertisement
Add Comment
Please, Sign In to add comment