結果
問題 | No.515 典型LCP |
ユーザー |
![]() |
提出日時 | 2017-05-05 22:55:48 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
MLE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 870 bytes |
コンパイル時間 | 1,815 ms |
コンパイル使用メモリ | 172,560 KB |
実行使用メモリ | 818,176 KB |
最終ジャッジ日時 | 2024-09-14 09:55:53 |
合計ジャッジ時間 | 5,422 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 2 |
other | MLE * 1 -- * 14 |
ソースコード
#include<bits/stdc++.h>using namespace std;typedef long long ll;#define loop(i,a,b) for(i=a;i<b;i++)#define rloop(i,a,b) for(i=a;i>=b;i--)#define vi vector<int>#define vl vector<ll>#define vii vector< vector<int> >#define vll vector< vector<ll> >#define vs vector<string>const int inf=1000000001;const ll INF=1e16;#define MOD 1000000007#define mod 1000000009#define pi 3.14159265358979323846int main(){int n,i,j,k,l,x,d,m;cin>>n;vs s(n+1);loop(k,1,n+1){cin>>s[k];}vii dp(n+1,vi(n+1,-1));cin>>m>>x>>d;ll sum=0;loop(k,1,m+1){int cnt=0;i=(x/(n-1))+1;j=(x%(n-1))+1;if(i>j){swap(i,j);}else{j++;}if(dp[i][j]==-1){loop(l,0,min(s[i].size(),s[j].size())){if(s[i][l]==s[j][l]){cnt++;}else{break;}}dp[i][j]=cnt;}x=(x+d)%(n*(n-1));sum+=dp[i][j];}cout<<sum<<endl;}