#pragma GCC optimize("Ofast") #include #define endl '\n' using namespace std; void fileIO() { freopen("ferrari.in", "r", stdin); freopen("ferrari.out", "w", stdout); } void fastIO() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); } const int MAXN=3005; const int MAXQ=2e5+5; int n,q; string s; vector adj[MAXN]; int mark[MAXN][MAXN]; long long Ans[MAXQ]; int p[2*MAXN]; string cur; void dfs(int v,int par,int root) { cur+=s[v-1]; if(mark[root][v]>0) { //cout< r) { l = j - p[j] +1; r = j + p[j] -1; } } long long ans=0; for(int j=1;j<=sz;j++) { ans+=p[j]/2; } Ans[mark[root][v]]=ans; cur.pop_back(); } cur+="$"; for(auto u: adj[v]) { if(u==par) continue; dfs(u,v,root); } cur.pop_back(); cur.pop_back(); } void solve() { cin>>n; cin>>s; for(int i=1;i>u>>v; adj[u].push_back(v); adj[v].push_back(u); } cin>>q; for(int i=0;i>u>>v; mark[u][v]=i+1; } for(int i=1;i<=n;i++) { cur="("; dfs(i,0,i); } for(int i=1;i<=q;i++) cout<