fork download
  1. #include<bits/stdc++.h>
  2.  
  3. #define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  4. #define ll long long
  5. #define pii pair<int,int>
  6. #define pill pair<int,ll>
  7. #define pll pair<ll,ll>
  8. #define pb push_back
  9. #define fi first
  10. #define se second
  11. #define ff fi.fi
  12. #define fs fi.se
  13. #define sf se.fi
  14. #define ss se.se
  15. #define MASK(x) (((1)<<(x))-1)
  16. #define getbit(x,k) (((x)>>(k))&1)
  17.  
  18. using namespace std;
  19.  
  20. const int maxn=1e5+50,mod=1e9+7;
  21. const ll inf=0x3f3f3f3f3f3f3f3f;
  22.  
  23. int n,m;
  24. vector<pii>eg[maxn],teg[maxn];
  25. vector<pair<pii,int>>alle;
  26. ll d1[maxn],d2[maxn],w1[maxn],w2[maxn];
  27.  
  28. void dijkstra(ll d[], ll w[], vector<pii>e[], int st)
  29. {
  30. memset(d,0x3f,(n+10)*sizeof(ll));d[st]=0;
  31. priority_queue<pll,vector<pll>,greater<pll>>pQ;
  32. pQ.push({d[st],st});
  33. w[st]=1;
  34. while(pQ.size())
  35. {
  36. pll u=pQ.top();pQ.pop();
  37. if(u.fi!=d[u.se]) continue;
  38. for(pii v:e[u.se])
  39. {
  40. if(u.fi+v.se<d[v.fi])
  41. {
  42. d[v.fi]=u.fi+v.se;
  43. w[v.fi]=w[u.se];
  44. pQ.push({d[v.fi],v.fi});
  45. }
  46. else if(u.fi+v.se==d[v.fi])
  47. w[v.fi]=(w[v.fi]+w[u.se])%mod;
  48. }
  49. }
  50. }
  51. int main()
  52. {
  53. fastio
  54. freopen("tandeptrai.inp","r",stdin);
  55. freopen("tandeptrai.out","w",stdout);
  56. cin>>n>>m;
  57. for(int i=1;i<=m;i++)
  58. {
  59. int u,v,c;cin>>u>>v>>c;
  60. eg[u].pb({v,c});teg[v].pb({u,c});
  61. alle.pb({{u,v},c});
  62. }
  63. dijkstra(d1,w1,eg,1);dijkstra(d2,w2,teg,2);
  64. for(auto x:alle)
  65. {
  66. int u=x.ff,v=x.fs,c=x.se;
  67. ll nd=d1[v]+d2[u]+c;
  68. if(nd<d1[2]) cout<<"TAN\n";
  69. else if(nd==d1[2]) cout<<"DEP\n";
  70. else
  71. {
  72. if(d1[u]+d2[v]+c==d1[2] && (w1[u]*w2[v])%mod==w1[2])
  73. cout<<"TRAI\n";
  74. else cout<<"DEP\n";
  75. }
  76. }
  77. }
  78.  
Success #stdin #stdout 0.01s 10296KB
stdin
Standard input is empty
stdout
Standard output is empty