palindrome.cpp: In function 'void sub1::solve()':
palindrome.cpp:92:28: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
92 | #define REP(i,a,b) for(int (i)=(a);(i)<=(b);++i)
| ^
palindrome.cpp:167:9: note: in expansion of macro 'REP'
167 | REP(i, 1, n) Pow[i] = product(Pow[i - 1], base);
| ^~~
palindrome.cpp:92:28: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
92 | #define REP(i,a,b) for(int (i)=(a);(i)<=(b);++i)
| ^
palindrome.cpp:170:9: note: in expansion of macro 'REP'
170 | REP(i, 1, n) Hashup[i] = (1LL * Hashup[i - 1] * base + s[i] - 'a' + 1) % mod;
| ^~~
palindrome.cpp:93:29: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
93 | #define REPD(i,a,b) for(int (i)=(a); (i)>=(b);--i)
| ^
palindrome.cpp:172:9: note: in expansion of macro 'REPD'
172 | REPD(i, n, 1) Hashdown[i] = (1LL * Hashdown[i + 1] * base + s[i] - 'a' + 1) % mod;
| ^~~~
palindrome.cpp:92:28: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
92 | #define REP(i,a,b) for(int (i)=(a);(i)<=(b);++i)
| ^
palindrome.cpp:175:9: note: in expansion of macro 'REP'
175 | REP(i, 1, n) REP(j, i, n) {
| ^~~
palindrome.cpp:92:28: warning: unnecessary parentheses in declaration of 'j' [-Wparentheses]
92 | #define REP(i,a,b) for(int (i)=(a);(i)<=(b);++i)
| ^
palindrome.cpp:175:22: note: in expansion of macro 'REP'
175 | REP(i, 1, n) REP(j, i, n) {
| ^~~
palindrome.cpp:94:28: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
94 | #define FOR(i, n) for (int (i) = 0; (i) < (n); ++(i))
| ^
palindrome.cpp:182:9: note: in expansion of macro 'FOR'
182 | FOR(i, v.size()) {
| ^~~
palindrome.cpp:94:41: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
94 | #define FOR(i, n) for (int (i) = 0; (i) < (n); ++(i))
| ~~~~^~~~~
palindrome.cpp:182:9: note: in expansion of macro 'FOR'
182 | FOR(i, v.size()) {
| ^~~
palindrome.cpp:184:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
184 | while(j < v.size() && v[i] == v[j]) ++j; --j;
| ~~^~~~~~~~~~
palindrome.cpp:184:13: warning: this 'while' clause does not guard... [-Wmisleading-indentation]
184 | while(j < v.size() && v[i] == v[j]) ++j; --j;
| ^~~~~
palindrome.cpp:184:54: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'while'
184 | while(j < v.size() && v[i] == v[j]) ++j; --j;
| ^~
palindrome.cpp: In function 'void file()':
palindrome.cpp:125:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
125 | freopen(PROB".inp","r",stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
palindrome.cpp:126:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
126 | freopen(PROB".out","w",stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~