Task: | Matching |
Sender: | eax511 |
Submission time: | 2016-10-22 14:10:15 +0300 |
Language: | C++ |
Status: | READY |
Result: | WRONG ANSWER |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.04 s | details |
#2 | ACCEPTED | 0.07 s | details |
#3 | ACCEPTED | 0.07 s | details |
#4 | WRONG ANSWER | 0.08 s | details |
#5 | WRONG ANSWER | 0.11 s | details |
#6 | WRONG ANSWER | 0.07 s | details |
#7 | ACCEPTED | 0.11 s | details |
#8 | ACCEPTED | 0.09 s | details |
#9 | ACCEPTED | 0.10 s | details |
#10 | ACCEPTED | 0.10 s | details |
#11 | ACCEPTED | 0.11 s | details |
#12 | ACCEPTED | 0.09 s | details |
Compiler report
input/code.cpp: In function 'int main()': input/code.cpp:33:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=p.size();i<v.size();++i){ ^ input/code.cpp:34:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(v[i]>=p.size())m.emplace_back(i-p.size()); ^
Code
#include <vector> #include <string> #include <iostream> using namespace std; bool cmpchr(char a,char b){return a=='?'||b=='?'||a==b;} vector<int> zAlgorithm(const std::string& S){ int n=S.size(); vector<int> ret(n,0); int L=0; int R=0; for(int i=1;i<n;++i){ if(i>R){ L=i; R=i; while(R<n&&cmpchr(S[R-L],S[R]))++R; ret[i]=R-L; --R; } else if(ret[i-L]<R-i+1)ret[i]=ret[i-L]; else { L=i; while(R<n&&cmpchr(S[R-L],S[R]))++R; ret[i]=R-L; --R; } } return ret; } int main(){ string p,s; cin>>p>>s; auto v = zAlgorithm(p+s); std::vector<int> m; for(int i=p.size();i<v.size();++i){ if(v[i]>=p.size())m.emplace_back(i-p.size()); } cout<<m.size()<<'\n'; for(auto& it : m)cout<<it+1<<'\n'; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
a?b
aabb |
correct output |
---|
2 1 2 |
user output |
---|
2 1 2 |
Test 2
Verdict: ACCEPTED
input |
---|
???hj?????bcg??c????f????p???l... |
correct output |
---|
1 225711 |
user output |
---|
1 225711 |
Test 3
Verdict: ACCEPTED
input |
---|
kvioxrw?wrmrljtbkonrczszi?sxff... |
correct output |
---|
1 318678 |
user output |
---|
1 318678 |
Test 4
Verdict: WRONG ANSWER
input |
---|
??????????????????????????????... |
correct output |
---|
1 124684 |
user output |
---|
0 |
Test 5
Verdict: WRONG ANSWER
input |
---|
???????????????????????b??????... |
correct output |
---|
1 162249 |
user output |
---|
0 |
Test 6
Verdict: WRONG ANSWER
input |
---|
??????????????????????????????... |
correct output |
---|
1 61191 |
user output |
---|
0 |
Test 7
Verdict: ACCEPTED
input |
---|
??????????????????????????????... |
correct output |
---|
200001 1 2 3 4 ... |
user output |
---|
200001 1 2 3 4 ... |
Test 8
Verdict: ACCEPTED
input |
---|
??????????????????????????????... |
correct output |
---|
399901 1 2 3 4 ... |
user output |
---|
399901 1 2 3 4 ... |
Test 9
Verdict: ACCEPTED
input |
---|
??????????????????????????????... |
correct output |
---|
390001 1 2 3 4 ... |
user output |
---|
390001 1 2 3 4 ... |
Test 10
Verdict: ACCEPTED
input |
---|
??????????????????????????????... |
correct output |
---|
300001 1 2 3 4 ... |
user output |
---|
300001 1 2 3 4 ... |
Test 11
Verdict: ACCEPTED
input |
---|
??????????????????????????????... |
correct output |
---|
300000 1 2 3 4 ... |
user output |
---|
300000 1 2 3 4 ... |
Test 12
Verdict: ACCEPTED
input |
---|
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... |
correct output |
---|
390001 1 2 3 4 ... |
user output |
---|
390001 1 2 3 4 ... |