# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1029825 | 2024-07-21T11:36:23 Z | earlyamazon | Savez (COCI15_savez) | C++14 | 83 ms | 65536 KB |
// wzorcowka KMP i trie #include <bits/stdc++.h> using namespace std; const int mn = 2e6+7; int n, terwyn, wyn, wsk = 2; vector<int> ps; struct node{ vector<int> s; int dp = 0; }; node trie[mn]; void zejdz(string s, int ind=1, int poz=0, int indps=0){ // cout<<"a: "<<s<<" "<<indps<<" "<<poz<<" "<<ind<<"\n"; if (indps < ps.size() && ps[indps] == poz) { terwyn = max(terwyn, trie[ind].dp); indps++; } if (poz == s.size()){ trie[ind].dp = terwyn + 1; wyn = max(wyn, trie[ind].dp); return; } if (trie[ind].s.size() < 26) trie[ind].s.resize(26); if (!trie[ind].s[s[poz]-'A']){ trie[ind].s[s[poz]-'A'] = wsk++; } zejdz(s, trie[ind].s[s[poz] - 'A'], poz+1, indps); } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; string s; trie[1].s.resize(26); for (int i = 0; i < n; i++){ cin>>s; vector<int> pi = {0}; ps.clear(); ps.push_back(s.size()); terwyn = 0; for (int j = 1; j < s.size(); j++){ int k = pi.back(); while (s[j] != s[k] && k){ k = pi[k-1]; } pi.push_back(k); if (s[j] == s[k]) { pi.back()++; } } // for (auto j : pi) cout<<j<<" "; // cout<<"\n"; int k = pi.back(); while (k){ ps.push_back(k); k = pi[k-1]; } reverse(ps.begin(), ps.end()); // for (auto j : ps) cout<<j<<" "; // cout<<"\n"; zejdz(s); } cout<<wyn<<"\n"; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 26 ms | 63068 KB | Output is correct |
2 | Correct | 27 ms | 63068 KB | Output is correct |
3 | Correct | 27 ms | 63068 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 26 ms | 63056 KB | Output is correct |
2 | Correct | 26 ms | 63064 KB | Output is correct |
3 | Runtime error | 30 ms | 65536 KB | Execution killed with signal 9 |
4 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 29 ms | 65536 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 29 ms | 65536 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 54 ms | 65536 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 56 ms | 65536 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 33 ms | 65536 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 31 ms | 65536 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 63 ms | 64012 KB | Output is correct |
2 | Correct | 60 ms | 64084 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 77 ms | 64320 KB | Output is correct |
2 | Correct | 70 ms | 64336 KB | Output is correct |
3 | Correct | 83 ms | 64836 KB | Output is correct |