# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
223316 | 2020-04-15T07:12:37 Z | jamielim | Trener (COCI20_trener) | C++14 | 7 ms | 2560 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; const ll MOD=1000000007; string str[20][1505]; map<string,ll> dp; int main(){ int n,k; scanf("%d%d",&n,&k); char temp[55]; for(int i=0;i<n;i++){ for(int j=0;j<=n;j++)str[i][j]='\0'; for(int j=0;j<k;j++){ scanf("%s",temp); str[i][j]=temp; } } for(int i=0;i<k;i++){ dp[str[0][i]]=1; } for(int i=1;i<n;i++){ for(int j=0;j<k;j++){ string a,b; for(int l=0;l<i;l++){ a+=str[i][j][l]; b+=str[i][j][l+1]; } dp[str[i][j]]+=dp[a]; if(a!=b)dp[str[i][j]]+=dp[b]; dp[str[i][j]]%=MOD; } } long long ans=0; for(auto it=dp.begin();it!=dp.end();++it){ if((it->first).length()==n){ans+=(it->second);ans%=MOD;} } printf("%lld",ans); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 1280 KB | Output is correct |
2 | Incorrect | 5 ms | 1280 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 7 ms | 2560 KB | Execution killed with signal 11 (could be triggered by violating memory limits) |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 1280 KB | Output is correct |
2 | Incorrect | 5 ms | 1280 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |