結果
| 問題 |
No.515 典型LCP
|
| ユーザー |
|
| 提出日時 | 2017-05-05 23:21:06 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,082 bytes |
| コンパイル時間 | 1,676 ms |
| コンパイル使用メモリ | 167,176 KB |
| 実行使用メモリ | 9,472 KB |
| 最終ジャッジ日時 | 2024-09-14 09:10:46 |
| 合計ジャッジ時間 | 5,808 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 1 RE * 14 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
namespace
{
const int MAX_N = 100000;
long long i[ MAX_N + 5 ];
long long j[ MAX_N + 5 ];
long long N;
long long M;
string S[ MAX_N + 5 ];
void SetArr( const int x0, const int d0 )
{
int k;
long long x;
long long d;
x = x0;
d = d0;
for( k = 1; k <= M; k++ )
{
i[ k ] = ( x / ( N - 1 ) ) + 1;
j[ k ] = ( x % ( N - 1 ) ) + 1;
if( i[ k ] > j[ k ] )
swap( i[ k ], j[ k ] );
else
j[ k ] += 1;
x = ( x + d ) % ( N * ( N - 1 ) );
}
}
int Check( const string &lpA, const string &lpB )
//int Check( const char *lpA, const char *lpB )
{
int i;
i = 0;
while( lpA[ i ] != '\0' && lpA[ i ] == lpB[ i ] )
i++;
return i;
}
} // namespace
int main( int argc, char *argv[] )
{
int a;
int x;
int d;
long long iSum;
cin >> N;
for( a = 1; a <= N; a++ ) cin >> S[ a ];
cin >> M;
cin >> x;
cin >> d;
SetArr( x, d );
iSum = 0;
for( a = 1; a <= M; a++ )
{
iSum += Check( S[ i[ a ] ], S[ j[ a ] ] );
// iSum += Check( S[ i[ a ] ].c_str(), S[ j[ a ] ].c_str() );
}
cout << iSum << endl;
return 0;
}