fork download
  1. #pragma GCC optimize ("Ofast")
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. void *wmem;
  5. char memarr[96000000];
  6. template<class S, class T> inline S max_L(S a,T b){
  7. return a>=b?a:b;
  8. }
  9. template<class T> inline void walloc1d(T **arr, int x, void **mem = &wmem){
  10. static int skip[16] = {0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
  11. (*mem) = (void*)( ((char*)(*mem)) + skip[((unsigned long long)(*mem)) & 15] );
  12. (*arr)=(T*)(*mem);
  13. (*mem)=((*arr)+x);
  14. }
  15. template<class S> inline void arrInsert(const int k, int &sz, S a[], const S aval){
  16. int i;
  17. sz++;
  18. for(i=sz-1;i>k;i--){
  19. a[i] = a[i-1];
  20. }
  21. a[k] = aval;
  22. }
  23. template<class S, class T> inline void arrInsert(const int k, int &sz, S a[], const S aval, T b[], const T bval){
  24. int i;
  25. sz++;
  26. for(i=sz-1;i>k;i--){
  27. a[i] = a[i-1];
  28. }
  29. for(i=sz-1;i>k;i--){
  30. b[i] = b[i-1];
  31. }
  32. a[k] = aval;
  33. b[k] = bval;
  34. }
  35. template<class S, class T, class U> inline void arrInsert(const int k, int &sz, S a[], const S aval, T b[], const T bval, U c[], const U cval){
  36. int i;
  37. sz++;
  38. for(i=sz-1;i>k;i--){
  39. a[i] = a[i-1];
  40. }
  41. for(i=sz-1;i>k;i--){
  42. b[i] = b[i-1];
  43. }
  44. for(i=sz-1;i>k;i--){
  45. c[i] = c[i-1];
  46. }
  47. a[k] = aval;
  48. b[k] = bval;
  49. c[k] = cval;
  50. }
  51. template<class S, class T, class U, class V> inline void arrInsert(const int k, int &sz, S a[], const S aval, T b[], const T bval, U c[], const U cval, V d[], const V dval){
  52. int i;
  53. sz++;
  54. for(i=sz-1;i>k;i--){
  55. a[i] = a[i-1];
  56. }
  57. for(i=sz-1;i>k;i--){
  58. b[i] = b[i-1];
  59. }
  60. for(i=sz-1;i>k;i--){
  61. c[i] = c[i-1];
  62. }
  63. for(i=sz-1;i>k;i--){
  64. d[i] = d[i-1];
  65. }
  66. a[k] = aval;
  67. b[k] = bval;
  68. c[k] = cval;
  69. d[k] = dval;
  70. }
  71. struct graph{
  72. int N;
  73. int *es;
  74. int **edge;
  75. void setEdge(int N__, int M, int A[], int B[], void **mem = &wmem){
  76. int i;
  77. N = N__;
  78. walloc1d(&es, N, mem);
  79. walloc1d(&edge, N, mem);
  80. for(i=(0);i<(N);i++){
  81. es[i] = 0;
  82. }
  83. for(i=(0);i<(M);i++){
  84. es[A[i]]++;
  85. es[B[i]]++;
  86. }
  87. for(i=(0);i<(N);i++){
  88. walloc1d(&edge[i], es[i], mem);
  89. }
  90. for(i=(0);i<(N);i++){
  91. es[i] = 0;
  92. }
  93. for(i=(0);i<(M);i++){
  94. edge[A[i]][es[A[i]]++] = B[i];
  95. edge[B[i]][es[B[i]]++] = A[i];
  96. }
  97. }
  98. }
  99. ;
  100. template<class T> struct wgraph{
  101. int N;
  102. int *es;
  103. int **edge;
  104. T **cost;
  105. graph g;
  106. void setEdge(int N__, int M, int A[], int B[], T C[], void **mem = &wmem){
  107. int i;
  108. N = N__;
  109. walloc1d(&es, N, mem);
  110. for(i=(0);i<(N);i++){
  111. es[i] = 0;
  112. }
  113. for(i=(0);i<(M);i++){
  114. es[A[i]]++;
  115. es[B[i]]++;
  116. }
  117. walloc1d(&edge, N, mem);
  118. for(i=(0);i<(N);i++){
  119. walloc1d(&edge[i], es[i], mem);
  120. }
  121. walloc1d(&cost, N, mem);
  122. for(i=(0);i<(N);i++){
  123. walloc1d(&cost[i], es[i], mem);
  124. }
  125. for(i=(0);i<(N);i++){
  126. es[i] = 0;
  127. }
  128. for(i=(0);i<(M);i++){
  129. edge[A[i]][es[A[i]]] = B[i];
  130. edge[B[i]][es[B[i]]] = A[i];
  131. cost[A[i]][es[A[i]]++] = C[i];
  132. cost[B[i]][es[B[i]]++] = C[i];
  133. }
  134. g.N = N;
  135. g.es = es;
  136. g.edge = edge;
  137. }
  138. template<class S> void getDistForest(int root, S res[], S unreachable = -1, void *mem = wmem){
  139. int i;
  140. int j;
  141. int k;
  142. int*q;
  143. int s;
  144. int z;
  145. char *r;
  146. walloc1d(&q,N,&mem);
  147. walloc1d(&r,N,&mem);
  148. for(i=(0);i<(N);i++){
  149. r[i]=0;
  150. }
  151. res[root]=0;
  152. r[root]=1;
  153. s=0;
  154. z=1;
  155. q[0]=root;
  156. while(z){
  157. i=q[s++];
  158. z--;
  159. for(j=(0);j<(es[i]);j++){
  160. k=edge[i][j];
  161. if(r[k]){
  162. continue;
  163. }
  164. res[k]=res[i]+cost[i][j];
  165. r[k]=1;
  166. q[s+z++]=k;
  167. }
  168. }
  169. for(i=(0);i<(N);i++){
  170. if(!r[i]){
  171. res[i]=unreachable;
  172. }
  173. }
  174. }
  175. }
  176. ;
  177. #define main dummy_main
  178. int main(){
  179. wmem = memarr;
  180. return 0;
  181. }
  182. #undef main
  183. int M;
  184. int A[100000];
  185. int B[100000];
  186. int C[100000];
  187. int dist[100000];
  188. wgraph<int> g;
  189. class Solution{
  190. public:
  191. int numOfMinutes(int N, int headID, vector<int>& manager, vector<int>& informTime){
  192. int i;
  193. dummy_main();
  194. M = 0;
  195. for(i=(0);i<(N);i++){
  196. if(manager[i] != -1){
  197. arrInsert(M,M,A,i,B,manager[i],C,informTime[manager[i]]);
  198. }
  199. }
  200. g.setEdge(N,M,A,B,C);
  201. g.getDistForest(headID, dist);
  202. {
  203. int Q5VJL1cS;
  204. int e98WHCEY;
  205. if(N==0){
  206. e98WHCEY = 0;
  207. }
  208. else{
  209. e98WHCEY = dist[0];
  210. for(Q5VJL1cS=(1);Q5VJL1cS<(N);Q5VJL1cS++){
  211. e98WHCEY = max_L(e98WHCEY, dist[Q5VJL1cS]);
  212. }
  213. }
  214. return e98WHCEY;
  215. }
  216. }
  217. }
  218. ;
  219. // cLay varsion 20200325-1
  220.  
  221. // --- original code ---
  222. // #define main dummy_main
  223. // {}
  224. // #undef main
  225. //
  226. // int M, A[1d5], B[1d5], C[1d5], dist[1d5];
  227. // wgraph<int> g;
  228. //
  229. // class Solution {
  230. // public:
  231. // int numOfMinutes(int N, int headID, vector<int>& manager, vector<int>& informTime) {
  232. // dummy_main();
  233. // M = 0;
  234. // rep(i,N) if(manager[i] != -1) arrInsert(M,M,A,i,B,manager[i],C,informTime[manager[i]]);
  235. // g.setEdge(N,M,A,B,C);
  236. // g.getDistForest(headID, dist);
  237. // return max(dist(N));
  238. // }
  239. // };
  240.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/Scrt1.o: in function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
stdout
Standard output is empty