Submission #68563439
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define fi first
#define se second
#define ld long double
#define pi pair<int, int>
#define mp make_pair
#define vi vector<int>
#define vvi vector<vector<int>>
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
const int INF = (int)4e18;
const int MODa = 1e9 + 7;
const int MOD = 998244353;
mt19937_64 RNG(chrono::steady_clock::now().time_since_epoch().count());
int enc(vector<int>& p)
{
int ans = 0;
int pp = 1;
for(int i=0; i<p.size(); i++)
{
ans += p[i]*pp;
pp *= 100;
}
return ans;
}
vector<int> dec(int x, int n)
{
vector<int> p(0);
for(int i=0; i<n; i++)
{
p.pb(x%100);
x /= 100;
}
return p;
}
int nv(string& s, int x, char c)
{
if(x==s.size()) return x;
if(x==0)
{
if(c==s[0]) return 1;
else return 0;
}
int al = 0;
string ns = s.substr(0, x) + c;
for(int z=x+1; z; z--)
{
if(ns.substr(ns.size()-z, z)==s.substr(0, z))
{
al = z;
break;
}
}
return al;
}
void solve()
{
int n, l;
cin>>n>>l;
vector<string> s(n);
for(int i=0; i<n; i++)
{
cin>>s[i];
}
vector<map<int, int>> cnt(l+1);
int prec[10][12][26];
for(int i=0; i<n; i++)
{
for(int j=0; j<=s[i].size(); j++)
{
for(int k=0; k<26; k++)
{
prec[i][j][k] = nv(s[i], j, ('a' + k));
}
}
}
// cerr<<"doenn"<<"\n";
cnt[0][0] = 1;
for(int i=0; i<l; i++)
{
// cerr<<i<<"\n";
for(auto pp: cnt[i])
{
vector<int> dn = dec(pp.fi, n);
vector<int> cn = dn;
for(int j=0; j<26; j++)
{
for(int k=0; k<n; k++)
{
// cn[k] = nv(s[k], dn[k], ('a'+j));
cn[k] = prec[k][dn[k]][j];
}
int ee = enc(cn);
cnt[i+1][ee] += pp.se;
cnt[i+1][ee] %= MOD;
}
}
}
vector<int> fin(n);
for(int i=0; i<n; i++)
{
fin[i] = s[i].size();
}
int ee = enc(fin);
if(!cnt[l].count(ee))
{
cout<<0<<"\n";
return;
}
cout<<cnt[l][ee]<<"\n";
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int t = 1;
// cin>>t;
while(t--)
{
solve();
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - All Included |
| User | ha___il |
| Language | C++ 20 (gcc 12.2) |
| Score | 550 |
| Code Size | 2739 Byte |
| Status | AC |
| Exec Time | 980 ms |
| Memory | 44492 KiB |
Compile Error
Main.cpp: In function ‘long long int enc(std::vector<long long int>&)’:
Main.cpp:28:19: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
28 | for(int i=0; i<p.size(); i++)
| ~^~~~~~~~~
Main.cpp: In function ‘long long int nv(std::string&, long long int, char)’:
Main.cpp:51:9: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
51 | if(x==s.size()) return x;
| ~^~~~~~~~~~
Main.cpp: In function ‘void solve()’:
Main.cpp:90:23: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
90 | for(int j=0; j<=s[i].size(); j++)
| ~^~~~~~~~~~~~~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 550 / 550 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3500 KiB |
| 00_sample_01.txt | AC | 1 ms | 3524 KiB |
| 00_sample_02.txt | AC | 17 ms | 4560 KiB |
| 01_test_00.txt | AC | 193 ms | 15544 KiB |
| 01_test_01.txt | AC | 563 ms | 35360 KiB |
| 01_test_02.txt | AC | 572 ms | 35300 KiB |
| 01_test_03.txt | AC | 160 ms | 12524 KiB |
| 01_test_04.txt | AC | 757 ms | 38436 KiB |
| 01_test_05.txt | AC | 713 ms | 37188 KiB |
| 01_test_06.txt | AC | 194 ms | 13232 KiB |
| 01_test_07.txt | AC | 801 ms | 38604 KiB |
| 01_test_08.txt | AC | 778 ms | 37436 KiB |
| 01_test_09.txt | AC | 590 ms | 28772 KiB |
| 01_test_10.txt | AC | 797 ms | 36532 KiB |
| 01_test_11.txt | AC | 839 ms | 37996 KiB |
| 01_test_12.txt | AC | 417 ms | 28056 KiB |
| 01_test_13.txt | AC | 652 ms | 39212 KiB |
| 01_test_14.txt | AC | 767 ms | 40036 KiB |
| 01_test_15.txt | AC | 846 ms | 43572 KiB |
| 01_test_16.txt | AC | 870 ms | 41532 KiB |
| 01_test_17.txt | AC | 888 ms | 43016 KiB |
| 01_test_18.txt | AC | 548 ms | 27988 KiB |
| 01_test_19.txt | AC | 980 ms | 44088 KiB |
| 01_test_20.txt | AC | 7 ms | 4164 KiB |
| 01_test_21.txt | AC | 24 ms | 5388 KiB |
| 01_test_22.txt | AC | 14 ms | 4756 KiB |
| 01_test_23.txt | AC | 73 ms | 8076 KiB |
| 01_test_24.txt | AC | 35 ms | 5756 KiB |
| 01_test_25.txt | AC | 58 ms | 6896 KiB |
| 01_test_26.txt | AC | 18 ms | 4680 KiB |
| 01_test_27.txt | AC | 121 ms | 9704 KiB |
| 01_test_28.txt | AC | 1 ms | 3588 KiB |
| 01_test_29.txt | AC | 1 ms | 3512 KiB |
| 01_test_30.txt | AC | 3 ms | 3736 KiB |
| 01_test_31.txt | AC | 909 ms | 44492 KiB |
| 01_test_32.txt | AC | 144 ms | 12004 KiB |