Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. #include <cstdio>
  2. #include <vector>
  3. #include <stack>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7. const int mx=1e5, mx_kr=3e5;
  8.  
  9. vector <pair <int, int> > vec[mx];
  10. //vector <int> wierz[mx];
  11. bool odw[mx];
  12. int poz[mx], low[mx];
  13. int il_spoj;
  14. stack <int> S;
  15. int dwuspoj[mx_kr];
  16. pair <int, int> kraw[mx_kr];
  17. int n, m, magazynier, pocz, kon;
  18. int mapa[mx][mx];
  19.  
  20. /*void dfs(int x, int v, int e){
  21. odw[x]=true;
  22. poz[x]=poz[v]+1;
  23. low[x]=poz[x];
  24. //printf(">> x %d poz %d v %d\n",x,poz[x],v);
  25. for(auto u: vec[x]){
  26. if(odw[u.first] && u.second!=e && poz[x]>poz[u.first]){
  27. low[x]=min(low[x], poz[u.first]);
  28. S.push(u.second);
  29. //printf(">kr %d\n",S.top());
  30. }
  31. if(!odw[u.first]){
  32. S.push(u.second);
  33. //printf(">kr %d\n",S.top());
  34. dfs(u.first, x, u.second);
  35. low[x]=min(low[u.first], low[x]);
  36. if(low[u.first]>=poz[x]){
  37. il_spoj++;
  38. while(S.top()!=u.second){
  39. //printf(">>kr %d\n",S.top());
  40. dwuspoj[S.top()]=il_spoj;
  41. int a=kraw[S.top()].first, b=kraw[S.top()].second;
  42. if(wierz[a].empty() || wierz[a].back()!=il_spoj) wierz[a].push_back(il_spoj);
  43. if(wierz[b].empty() || wierz[b].back()!=il_spoj) wierz[b].push_back(il_spoj);
  44. S.pop();
  45. }
  46. dwuspoj[S.top()]=il_spoj;
  47. int a=kraw[S.top()].first, b=kraw[S.top()].second;
  48. if(wierz[a].empty() || wierz[a].back()!=il_spoj) wierz[a].push_back(il_spoj);
  49. if(wierz[b].empty() || wierz[b].back()!=il_spoj) wierz[b].push_back(il_spoj);
  50. S.pop();
  51. }
  52. }
  53. }
  54. }*/
  55. void wczyt(){
  56. scanf("%d %d ",&n,&m);
  57. /*for(int i=1; i<=n; i++){
  58. for(int j=1; j<=m; j++){
  59. char z;
  60. scanf("%c",&z);
  61. if(z=='S')
  62. mapa[i][j]=1;
  63. if(z=='M')
  64. magazynier=(i-1)*n+j;
  65. //if(z=='P')
  66. //pocz=(i-1)*n+j;
  67. //if(z=='K')
  68. //kon=(i-1)*n+j;
  69. }
  70. }
  71. for(int i=1; i<=n; i++){
  72. for(int j=1; j<=m; j++){
  73. printf("%d",mapa[i][j]);
  74. }
  75. puts("");
  76. }*/
  77. }
  78.  
  79.  
  80. int main(){
  81.  
  82. //wczyt();
  83. /*for(int i=1; i<=m; i++){
  84. int a, b;
  85. scanf("%d %d",&a,&b);
  86. vec[a].push_back({b, i});
  87. vec[b].push_back({a, i});
  88. kraw[i]={a, b};
  89. }
  90. for(int i=1; i<=n; i++){
  91. if(!odw[i]) dfs(i, 0, 0);
  92. }*/
  93.  
  94. return 0;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement