Submission #909003

#TimeUsernameProblemLanguageResultExecution timeMemory
909003ibm2006Cubeword (CEOI19_cubeword)C++17
0 / 100
1052 ms6640 KiB
#include<bits/stdc++.h> using namespace std; typedef long long int ll; ll n,i,j,k,l,r,x,y,z,w,s,t,a[12][110][110],dp[110][110][110],m; const ll mod=998244353; char c[110000]; ll tr(char c) { if(c>='a') return c-'a'+1; if(c>='A') return c-'A'+1+26; return c-'0'+1+26+26; } ll palin() { ll i; for(i=0;i<m;i++) { if(c[i]!=c[m-1-i]) return 0; } return 1; } ll f(ll x) { ll i,t=0,j,k,l; for(i=1;i<=62;i++) { for(j=1;j<=62;j++) { for(k=1;k<=62;k++) { dp[i][j][k]=0; for(l=1;l<=62;l++) { dp[i][j][k]+=a[x][i][l]*a[x][j][l]*a[x][k][l]; dp[i][j][k]%=mod; } } } } for(i=1;i<=62;i++) { for(j=1;j<=62;j++) { for(k=1;k<=62;k++) { for(l=1;l<=62;l++) { t=(t+dp[i][j][k]*dp[i][j][l]%mod*dp[i][k][l]%mod*dp[j][k][l]%mod)%mod; } } } } return t; } int main() { scanf("%lld",&n); for(i=1;i<=n;i++) { scanf("\n%s",c); m=strlen(c); x=tr(c[0]); y=tr(c[m-1]); if(palin()) { a[m][x][y]++; } else { a[m][x][y]++; a[m][y][x]++; } } //printf("!"); for(i=3;i<=10;i++) { s=(s+f(i))%mod; } printf("%lld",s); }

Compilation message (stderr)

cubeword.cpp: In function 'int main()':
cubeword.cpp:60:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   60 |     scanf("%lld",&n);
      |     ~~~~~^~~~~~~~~~~
cubeword.cpp:63:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   63 |         scanf("\n%s",c);
      |         ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...