fork download
  1. /*
  2. Developed by Ganesh Sawhney
  3. */
  4.  
  5. #include <iostream>
  6. #include <cstring>
  7. #include <cstdio>
  8. #include <algorithm>
  9.  
  10. using namespace std;
  11.  
  12. const int MAX_N = 1000 + 10;
  13. int G[MAX_N][MAX_N];
  14.  
  15. struct Value
  16. {
  17. int val;
  18. int i;
  19. };
  20. int cmp(Value a, Value b)
  21. {
  22. return a.val > b.val;
  23. }
  24. Value value[MAX_N];
  25. int value1[MAX_N];
  26.  
  27. int main()
  28. {
  29. memset(G, 0, sizeof(G));
  30. int n, m;
  31. scanf("%d%d", &n, &m);
  32. for(int i = 1;i <= n; i++)
  33. {
  34. scanf("%d", &value[i].val);
  35. value1[i] = value[i].val;
  36. value[i].i = i;
  37. }
  38. int u, v;
  39. for(int i = 0; i < m; i++)
  40. {
  41. scanf("%d%d", &u, &v);
  42. G[u][v] = G[v][u] = 1;
  43. }
  44. sort(value + 1, value + n + 1, cmp);
  45. int sum = 0;
  46. int b;
  47. for(int i = 1; i <= n; i++)
  48. {
  49. b = value[i].i;
  50. for(int j = 1; j <= n; j++)
  51. {
  52. if(G[b][j])
  53. {
  54. sum += value1[j];
  55. G[b][j] = G[j][b] = 0;
  56. }
  57. }
  58. }
  59. printf("%d\n", sum);
  60. return 0;
  61. }
  62.  
Runtime error #stdin #stdout 0s 6684KB
stdin
Standard input is empty
stdout
Standard output is empty