Submission #943954

# Submission time Handle Problem Language Result Execution time Memory
943954 2024-03-12T05:27:04 Z Minbaev Cubeword (CEOI19_cubeword) C++17
0 / 100
1100 ms 15956 KB
#include <bits/stdc++.h>

using namespace std;

#define int long long

const int N=1e6 + 5	;
const int inf = 1e18 + 7;
const int mod = 998244353;

int g[11][7][7];
vector<int>op[8];

int ans = 0;


void dfs(int sz, int ind, vector<int>v){
	
	if(8 < ind){
		int val = 1;
		
		for(int i = 1;i<=7;i++){
			for(auto to:op[i]){
				val *= g[sz][v[i]][v[to]];
				val %= mod;
			}
		}
		/*if(val > 0){
			for(auto to:v)cout<<to<<" ";
			cout<<"\n";
		}*/
		ans += val;
		ans %= mod;
		return;
	}
	
	for(int i = 0;i<6;i++){
		v[ind] = i;
		dfs(sz,ind+1,v);
	}
	
	
}

void solve(){
	
	op[1] = {2,3,4};
	op[2] = {5,8};
	op[3] = {6,8};
	op[4] = {5,6};
	op[5] = {7};
	op[6] = {7};
	op[7] = {8};
	
	int n,m,k;
	map<string,int>mp;
	cin >> n;
	
	for(int i = 1;i<=n;i++){
		string a;
		cin >> a;
		if(mp[a] == 0){
			g[(int)a.size()][a[0] - 'a'][a[a.size()-1] - 'a'] += 1;
			mp[a] += 1;
		}
		reverse(a.begin(),a.end());
		if(mp[a] == 0){
			g[(int)a.size()][a[0] - 'a'][a[a.size()-1] - 'a'] += 1;
			mp[a] += 1;
		}
	}	
	
	for(int i = 3;i<=10;i++){
		vector<int>v(9,-1);
		dfs(i,1,v);
	}
	cout<<ans<<"\n";
	
}
/*

*/
signed main()
{
//	freopen("seq.in", "r", stdin);
//  freopen("seq.out", "w", stdout);
	ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL);
	int tt=1;//cin>>tt>>n;
	while(tt--)solve();

}

Compilation message

cubeword.cpp: In function 'void solve()':
cubeword.cpp:55:8: warning: unused variable 'm' [-Wunused-variable]
   55 |  int n,m,k;
      |        ^
cubeword.cpp:55:10: warning: unused variable 'k' [-Wunused-variable]
   55 |  int n,m,k;
      |          ^
# Verdict Execution time Memory Grader output
1 Correct 1028 ms 14932 KB Output is correct
2 Correct 1049 ms 15956 KB Output is correct
3 Correct 1027 ms 15784 KB Output is correct
4 Correct 1038 ms 15768 KB Output is correct
5 Correct 1032 ms 15696 KB Output is correct
6 Correct 1039 ms 15784 KB Output is correct
7 Correct 1044 ms 15700 KB Output is correct
8 Correct 1036 ms 15792 KB Output is correct
9 Correct 1048 ms 15856 KB Output is correct
10 Correct 1030 ms 15792 KB Output is correct
11 Correct 1098 ms 15892 KB Output is correct
12 Correct 1049 ms 15768 KB Output is correct
13 Correct 1051 ms 15800 KB Output is correct
14 Correct 1020 ms 15788 KB Output is correct
15 Correct 1050 ms 15792 KB Output is correct
16 Execution timed out 1109 ms 15776 KB Time limit exceeded
17 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1028 ms 14932 KB Output is correct
2 Correct 1049 ms 15956 KB Output is correct
3 Correct 1027 ms 15784 KB Output is correct
4 Correct 1038 ms 15768 KB Output is correct
5 Correct 1032 ms 15696 KB Output is correct
6 Correct 1039 ms 15784 KB Output is correct
7 Correct 1044 ms 15700 KB Output is correct
8 Correct 1036 ms 15792 KB Output is correct
9 Correct 1048 ms 15856 KB Output is correct
10 Correct 1030 ms 15792 KB Output is correct
11 Correct 1098 ms 15892 KB Output is correct
12 Correct 1049 ms 15768 KB Output is correct
13 Correct 1051 ms 15800 KB Output is correct
14 Correct 1020 ms 15788 KB Output is correct
15 Correct 1050 ms 15792 KB Output is correct
16 Execution timed out 1109 ms 15776 KB Time limit exceeded
17 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1028 ms 14932 KB Output is correct
2 Correct 1049 ms 15956 KB Output is correct
3 Correct 1027 ms 15784 KB Output is correct
4 Correct 1038 ms 15768 KB Output is correct
5 Correct 1032 ms 15696 KB Output is correct
6 Correct 1039 ms 15784 KB Output is correct
7 Correct 1044 ms 15700 KB Output is correct
8 Correct 1036 ms 15792 KB Output is correct
9 Correct 1048 ms 15856 KB Output is correct
10 Correct 1030 ms 15792 KB Output is correct
11 Correct 1098 ms 15892 KB Output is correct
12 Correct 1049 ms 15768 KB Output is correct
13 Correct 1051 ms 15800 KB Output is correct
14 Correct 1020 ms 15788 KB Output is correct
15 Correct 1050 ms 15792 KB Output is correct
16 Execution timed out 1109 ms 15776 KB Time limit exceeded
17 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1028 ms 14932 KB Output is correct
2 Correct 1049 ms 15956 KB Output is correct
3 Correct 1027 ms 15784 KB Output is correct
4 Correct 1038 ms 15768 KB Output is correct
5 Correct 1032 ms 15696 KB Output is correct
6 Correct 1039 ms 15784 KB Output is correct
7 Correct 1044 ms 15700 KB Output is correct
8 Correct 1036 ms 15792 KB Output is correct
9 Correct 1048 ms 15856 KB Output is correct
10 Correct 1030 ms 15792 KB Output is correct
11 Correct 1098 ms 15892 KB Output is correct
12 Correct 1049 ms 15768 KB Output is correct
13 Correct 1051 ms 15800 KB Output is correct
14 Correct 1020 ms 15788 KB Output is correct
15 Correct 1050 ms 15792 KB Output is correct
16 Execution timed out 1109 ms 15776 KB Time limit exceeded
17 Halted 0 ms 0 KB -