fork download
  1. #pragma GCC optimize("Ofast")
  2. #pragma GCC optimize("unroll-loops")
  3. #pragma GCC optimize("inline")
  4. #include<bits/stdc++.h>
  5. using namespace std;
  6. void*wmem;
  7. char memarr[96000000];
  8. template<class T> inline void walloc1d(T **arr, int x, void **mem = &wmem){
  9. static int skip[16] = {0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
  10. (*mem) = (void*)( ((char*)(*mem)) + skip[((unsigned long long)(*mem)) & 15] );
  11. (*arr)=(T*)(*mem);
  12. (*mem)=((*arr)+x);
  13. }
  14. template<class T> inline void walloc1d(T **arr, int x1, int x2, void **mem = &wmem){
  15. walloc1d(arr, x2-x1, mem);
  16. (*arr) -= x1;
  17. }
  18. int isSubstring(string A, string B, void *mem = wmem){
  19. int i = 0;
  20. int k;
  21. int*fail;
  22. char*m;
  23. if(B.size() > A.size()){
  24. return 0;
  25. }
  26. walloc1d(&fail, B.size()+1, &mem);
  27. k = fail[0] = -1;
  28. for(i=(0);i<(B.size());i++){
  29. while(k>=0 && B[k] != B[i]){
  30. k = fail[k];
  31. }
  32. fail[i+1] = ++k;
  33. }
  34. k = 0;
  35. for(i=(0);i<(A.size());i++){
  36. while(k >= 0 && B[k] != A[i]){
  37. k = fail[k];
  38. }
  39. if((++k) == B.size()){
  40. return 1;
  41. }
  42. }
  43. return 0;
  44. }
  45. #define main dummy_main
  46. int main(){
  47. wmem = memarr;
  48. return 0;
  49. }
  50. #undef main
  51. class Solution{
  52. public:
  53. int numOfStrings(vector<string>& patterns, string word){
  54. dummy_main();
  55. int res = 0;
  56. for(auto s : patterns){
  57. res += isSubstring(word, s);
  58. }
  59. return res;
  60. }
  61. }
  62. ;
  63. // cLay version 20210816-1
  64.  
  65. // --- original code ---
  66. // #define main dummy_main
  67. // {}
  68. // #undef main
  69. //
  70. // class Solution {
  71. // public:
  72. // int numOfStrings(vector<string>& patterns, string word) {
  73. // dummy_main();
  74. // int res = 0;
  75. // for(auto s : patterns) res += isSubstring(word, s);
  76. // return res;
  77. // }
  78. // };
  79.  
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