Submission #1150914

#TimeUsernameProblemLanguageResultExecution timeMemory
1150914btninhKlavir (COCI17_klavir)C++20
0 / 160
96 ms41544 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int N = 1000005; const int mod = 1e9 + 7; int n, m, p[N], pw[N], ans[N], a[N]; int32_t main(){ ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for(int i = 1; i <= m; ++i) cin >> a[i]; p[1] = 0; for(int i = 2; i <= m; ++i){ int j = p[i - 1]; while(j >= 1 && a[j + 1] != a[i]) j = p[j - 1]; if (a[j + 1] == a[i]){ p[i] = j + 1; } } pw[0] = 1; for(int i = 1; i <= m; ++i) pw[i] = pw[i - 1] * n % mod; for(int i = 1; i <= m; ++i){ ans[i] = (ans[p[i]] + pw[i]) % mod; cout << ans[i] << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...