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 T> inline void walloc1d(T **arr, int x, void **mem = &wmem){
  7. static int skip[16] = {0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
  8. (*mem) = (void*)( ((char*)(*mem)) + skip[((unsigned long long)(*mem)) & 15] );
  9. (*arr)=(T*)(*mem);
  10. (*mem)=((*arr)+x);
  11. }
  12. template<class S> inline void arrInsert(const int k, int &sz, S a[], const S aval){
  13. int i;
  14. sz++;
  15. for(i=sz-1;i>k;i--){
  16. a[i] = a[i-1];
  17. }
  18. a[k] = aval;
  19. }
  20. template<class S, class T> inline void arrInsert(const int k, int &sz, S a[], const S aval, T b[], const T bval){
  21. int i;
  22. sz++;
  23. for(i=sz-1;i>k;i--){
  24. a[i] = a[i-1];
  25. }
  26. for(i=sz-1;i>k;i--){
  27. b[i] = b[i-1];
  28. }
  29. a[k] = aval;
  30. b[k] = bval;
  31. }
  32. 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){
  33. int i;
  34. sz++;
  35. for(i=sz-1;i>k;i--){
  36. a[i] = a[i-1];
  37. }
  38. for(i=sz-1;i>k;i--){
  39. b[i] = b[i-1];
  40. }
  41. for(i=sz-1;i>k;i--){
  42. c[i] = c[i-1];
  43. }
  44. a[k] = aval;
  45. b[k] = bval;
  46. c[k] = cval;
  47. }
  48. 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){
  49. int i;
  50. sz++;
  51. for(i=sz-1;i>k;i--){
  52. a[i] = a[i-1];
  53. }
  54. for(i=sz-1;i>k;i--){
  55. b[i] = b[i-1];
  56. }
  57. for(i=sz-1;i>k;i--){
  58. c[i] = c[i-1];
  59. }
  60. for(i=sz-1;i>k;i--){
  61. d[i] = d[i-1];
  62. }
  63. a[k] = aval;
  64. b[k] = bval;
  65. c[k] = cval;
  66. d[k] = dval;
  67. }
  68. struct graph{
  69. int N;
  70. int *es;
  71. int **edge;
  72. void setDirectEdge(int N__, int M, int A[], int B[], void **mem = &wmem){
  73. int i;
  74. N = N__;
  75. walloc1d(&es, N, mem);
  76. walloc1d(&edge, N, mem);
  77. walloc1d(&edge[0], M, mem);
  78. for(i=(0);i<(N);i++){
  79. es[i] = 0;
  80. }
  81. for(i=(0);i<(M);i++){
  82. es[A[i]]++;
  83. }
  84. for(i=(0);i<(N);i++){
  85. walloc1d(&edge[i], es[i], mem);
  86. }
  87. for(i=(0);i<(N);i++){
  88. es[i] = 0;
  89. }
  90. for(i=(0);i<(M);i++){
  91. edge[A[i]][es[A[i]]++] = B[i];
  92. }
  93. }
  94. void getDist(int root, int res[], void *mem = wmem){
  95. int i;
  96. int j;
  97. int k;
  98. int*q;
  99. int s;
  100. int z;
  101. walloc1d(&q, N, &mem);
  102. for(i=(0);i<(N);i++){
  103. res[i]=-1;
  104. }
  105. res[root]=0;
  106. s=0;
  107. z=1;
  108. q[0]=root;
  109. while(z){
  110. i=q[s++];
  111. z--;
  112. for(j=(0);j<(es[i]);j++){
  113. k=edge[i][j];
  114. if(res[k]>=0){
  115. continue;
  116. }
  117. res[k]=res[i]+1;
  118. q[s+z++]=k;
  119. }
  120. }
  121. }
  122. }
  123. ;
  124. #define main dummy_main
  125. int main(){
  126. wmem = memarr;
  127. return 0;
  128. }
  129. #undef main
  130. graph g;
  131. int n;
  132. int m;
  133. int a[10000];
  134. int b[10000];
  135. int dist[100];
  136. class Solution{
  137. public:
  138. vector<string> watchedVideosByFriends(vector<vector<string>>& v, vector<vector<int>>& f, int id, int level){
  139. int i;
  140. vector<string> res;
  141. map<string,int> mp;
  142. vector< pair<int,string> > tmp;
  143. dummy_main();
  144. n = v.size();
  145. m = 0;
  146. for(i=(0);i<(n);i++){
  147. int j;
  148. for(j=(0);j<(f[i].size());j++){
  149. arrInsert(m,m,a,i,b,f[i][j]);
  150. }
  151. }
  152. g.setDirectEdge(n,m,a,b);
  153. g.getDist(id,dist);
  154. for(i=(0);i<(n);i++){
  155. if(dist[i] == level){
  156. int j;
  157. for(j=(0);j<(v[i].size());j++){
  158. mp[v[i][j]]++;
  159. }
  160. }
  161. }
  162. for(auto i : mp){
  163. tmp.push_back( make_pair(i.second, i.first) );
  164. }
  165. sort(tmp.begin(), tmp.end());
  166. for(auto i : tmp){
  167. res.push_back(i.second);
  168. }
  169. return res;
  170. }
  171. }
  172. ;
  173. // cLay varsion 20200112-1
  174.  
  175. // --- original code ---
  176. // #define main dummy_main
  177. // {}
  178. // #undef main
  179. //
  180. // graph g;
  181. // int n, m, a[10000], b[10000];
  182. // int dist[100];
  183. //
  184. // class Solution {
  185. // public:
  186. // vector<string> watchedVideosByFriends(vector<vector<string>>& v, vector<vector<int>>& f, int id, int level) {
  187. // vector<string> res;
  188. // map<string,int> mp;
  189. // vector< pair<int,string> > tmp;
  190. //
  191. // dummy_main();
  192. // n = v.size();
  193. // m = 0;
  194. // rep(i,n) rep(j,f[i].size()) arrInsert(m,m,a,i,b,f[i][j]);
  195. // g.setDirectEdge(n,m,a,b);
  196. // g.getDist(id,dist);
  197. //
  198. // rep(i,n) if(dist[i] == level) rep(j,v[i].size()) mp[v[i][j]]++;
  199. // for(auto i : mp) tmp.push_back( make_pair(i.second, i.first) );
  200. // sort(tmp.begin(), tmp.end());
  201. // for(auto i : tmp) res.push_back(i.second);
  202. // return res;
  203. // }
  204. // };
  205.  
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