結果
問題 |
No.464 PPAP
|
ユーザー |
![]() |
提出日時 | 2025-07-27 15:24:17 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,295 bytes |
コンパイル時間 | 1,776 ms |
コンパイル使用メモリ | 196,664 KB |
実行使用メモリ | 7,720 KB |
最終ジャッジ日時 | 2025-07-27 15:24:20 |
合計ジャッジ時間 | 3,090 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | WA * 4 |
other | WA * 22 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:24:12: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 24 | freopen("par.in", "r", stdin); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ main.cpp:25:12: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 25 | freopen("par.out", "w", stdout); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
ソースコード
#include <bits/stdc++.h> #define int ll #define fi first #define endl '\n' #define il inline #define se second #define pb push_back #define INF 0x3f3f3f3f using namespace std; typedef long long ll; typedef pair<int, int> pii; #ifdef ONLINE_JUDGE #define debug(...) 0 #else #define debug(...) fprintf(stderr, __VA_ARGS__), fflush(stderr) #endif const int N = 1e4 + 10; string s, str; int ans, p[N << 1], r = -1, c = -1, suf[N]; signed main() { ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); freopen("par.in", "r", stdin); freopen("par.out", "w", stdout); cin >> s, str = "~#"; for (int i = 0; i < s.size(); i++) str += s[i], str += '#'; str += '$'; for (int i = 1; i < str.size(); i++) { p[i] = (i < r) ? min(p[2 * c - i], r - i) : 1; while (str[i - p[i]] == str[i + p[i]]) p[i]++; if (r < i + p[i]) r = i + p[i], c = i; } int n = s.size(); s = ' ' + s; for (int i = n; i >= 1; i--) suf[i] = suf[i + 1] + (p[i + n] - 1 >= n - i + 1); for (int i = 1; i <= n - 3; i++) { if (p[i + 1] - 1 < i) continue; for (int j = i + 1; j <= n - 2; j++) ans += suf[j + 2] * (p[2 * i + j - i + 1] - 1 >= j - i); } cout << ans << endl; return 0; }