fork download
  1. #include <vector>
  2. #include <list>
  3. #include <map>
  4. #include <set>
  5. #include <queue>
  6. #include <deque>
  7. #include <stack>
  8. #include <bitset>
  9. #include <algorithm>
  10. #include <functional>
  11. #include <numeric>
  12. #include <utility>
  13. #include <sstream>
  14. #include <iostream>
  15. #include <iomanip>
  16. #include <cstdio>
  17. #include <cmath>
  18. #include <cstdlib>
  19. #include <ctime>
  20. #include <string.h>
  21. #include <limits.h>
  22.  
  23. using namespace std;
  24.  
  25. #define rep(i,a,b) for(int i=(a);i<(b);i++)
  26. #define vi vector<int>
  27. #define pb push_back
  28. #define ll long long int
  29. #define gi(x) scanf("%d",&x)
  30. #define ii pair<int,int>
  31. #define CLEAR(x,val) memset(x,val,sizeof(x))
  32. #define SZ(v) (v).size()
  33. #define MOD 1000000000
  34.  
  35.  
  36. int main()
  37. {
  38. int n,m,o;
  39. cin>>n>>m>>o;
  40.  
  41. ll adj[n+1][n+1];
  42.  
  43. for(int i=0; i<=n ; i++)
  44. {
  45. for(int j=0 ; j<=n ; j++)
  46. {
  47. adj[i][j] = 1000000000000001;
  48. }
  49. }
  50.  
  51. rep(i,0,m)
  52. {
  53. int x,y,v;
  54. cin>>x>>y>>v;
  55. adj[x][y]=v;
  56. adj[y][x]=v;
  57. }
  58.  
  59. rep(k,1,n+1)
  60. rep(j,1,n+1)
  61. adj[1][j] = min(adj[1][j], adj[1][k] + adj[k][j]);
  62.  
  63. int c=0;
  64. rep(i,0,o)
  65. {
  66. int s,x;
  67. cin>>s>>x;
  68. if(adj[1][s]<=x)
  69. {
  70. c++;
  71. }
  72. else
  73. {
  74. adj[1][s]=x;
  75. }
  76. }
  77.  
  78. cout<<c<<endl;
  79. return 0;
  80. }
  81.  
  82.  
Runtime error #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
Standard output is empty