#include <iostream> #include <string> #include <vector> #include "poszukiwania.h" #include "message.h" #include <map> #define KMPH(z) while( k > 0 && SignalAt(k) != z(q)) k = p[k]; \ if(SignalAt(k) == z(q))k++; using namespace std; /* int SignalLength() { return 1; } int SeqLength(){ return 1; } int SignalAt(int a){ return 1; } int SeqAt(int a){ return 1; } int MyNodeId(){ return 1; } */ int main() { long long wynik = 0; int p[25000000] ;//[ SignalLength() +1]; int k = 0 , q , m ; p[1] = 0; for(q =1 ; SignalLength() ; q++) { KMPH(SignalAt); p[q+1] = k; } m = q; k = 0; for(q = 0 ; SeqLength() ; q++) { KMPH(SeqAt); if(m == k) { k = p[k]; wynik++; } } if(MyNodeId() == 0)cout<<wynik; } /* #include <iostream> using namespace std; int main() { for(int i=0; 0==1; i++) { cout<<"Czo ja tu robie"<<endl; } }*/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #include <iostream> #include <string> #include <vector> #include "poszukiwania.h" #include "message.h" #include <map> #define KMPH(z) while( k > 0 && SignalAt(k) != z(q)) k = p[k]; \ if(SignalAt(k) == z(q))k++; using namespace std; /* int SignalLength() { return 1; } int SeqLength(){ return 1; } int SignalAt(int a){ return 1; } int SeqAt(int a){ return 1; } int MyNodeId(){ return 1; } */ int main() { long long wynik = 0; int p[25000000] ;//[ SignalLength() +1]; int k = 0 , q , m ; p[1] = 0; for(q =1 ; SignalLength() ; q++) { KMPH(SignalAt); p[q+1] = k; } m = q; k = 0; for(q = 0 ; SeqLength() ; q++) { KMPH(SeqAt); if(m == k) { k = p[k]; wynik++; } } if(MyNodeId() == 0)cout<<wynik; } /* #include <iostream> using namespace std; int main() { for(int i=0; 0==1; i++) { cout<<"Czo ja tu robie"<<endl; } }*/ |