Submission #341552

# Submission time Handle Problem Language Result Execution time Memory
341552 2020-12-30T01:01:45 Z A_D Trener (COCI20_trener) C++14
55 / 110
2000 ms 20708 KB
/*
ID: antwand1
TASK: pprime
LANG: C++
*/
#include <bits/stdc++.h>
#define ll long long
#define du long double
#define F first
#define S second
#define FOR(a,b) for(int a=1;a<=b;a++)
#define FORl(a,b) for(a=1;a<=b;a++)
#define FOR0(a,b) for(int a=1;a<b;a++)
#define FORl0(a,b) for(a=0;a<b;a++)
#define ii pair<int,int>
using namespace std;
const int MOD=1e9+7;
const int N=55;
const int M=1511;
string a[N][M];
ll dp[N][M];
string sub[N][M][2];
int n,m;
string get(string&s,int l,int r)
{
    string ret;
    for(int i=l;i<=r;i++)ret+=s[i];return ret;
}

main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>a[i][j];
            for(int k=0;k<2;k++){
                sub[i][j][k]=get(a[i][j],k,k+i-2);
            }
        }
    }
    for(int i=1;i<=m;i++)dp[1][i]=1;
    for(int i=1;i<n;i++){
        for(int j=1;j<=m;j++){
            for(int x=1;x<=m;x++){
                if(a[i][j]==sub[i+1][x][0]||a[i][j]==sub[i+1][x][1])dp[i+1][x]+=dp[i][j];
                dp[i+1][x]%=MOD;
            }
        }
    }
    int ans=0;
    for(int i=1;i<=m;i++){
        ans+=dp[n][i];
        ans%=MOD;
    }
    cout<<ans<<endl;
}

Compilation message

trener.cpp: In function 'std::string get(std::string&, int, int)':
trener.cpp:27:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   27 |     for(int i=l;i<=r;i++)ret+=s[i];return ret;
      |     ^~~
trener.cpp:27:36: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   27 |     for(int i=l;i<=r;i++)ret+=s[i];return ret;
      |                                    ^~~~~~
trener.cpp: At global scope:
trener.cpp:30:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   30 | main()
      |      ^
# Verdict Execution time Memory Grader output
1 Correct 6 ms 8172 KB Output is correct
2 Correct 6 ms 8172 KB Output is correct
3 Correct 5 ms 8172 KB Output is correct
4 Correct 6 ms 8172 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 19 ms 9068 KB Output is correct
2 Correct 19 ms 9068 KB Output is correct
3 Correct 19 ms 9068 KB Output is correct
4 Correct 15 ms 9068 KB Output is correct
5 Correct 24 ms 9068 KB Output is correct
6 Correct 24 ms 9196 KB Output is correct
7 Correct 16 ms 9068 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 8172 KB Output is correct
2 Correct 6 ms 8172 KB Output is correct
3 Correct 5 ms 8172 KB Output is correct
4 Correct 6 ms 8172 KB Output is correct
5 Correct 19 ms 9068 KB Output is correct
6 Correct 19 ms 9068 KB Output is correct
7 Correct 19 ms 9068 KB Output is correct
8 Correct 15 ms 9068 KB Output is correct
9 Correct 24 ms 9068 KB Output is correct
10 Correct 24 ms 9196 KB Output is correct
11 Correct 16 ms 9068 KB Output is correct
12 Correct 1594 ms 18688 KB Output is correct
13 Correct 1584 ms 20588 KB Output is correct
14 Correct 1589 ms 20588 KB Output is correct
15 Correct 1604 ms 20708 KB Output is correct
16 Correct 819 ms 20588 KB Output is correct
17 Execution timed out 2068 ms 20532 KB Time limit exceeded
18 Halted 0 ms 0 KB -