#include<iostream>
#include<cstdio>
#include<cmath>
#include<stdio.h>
#include<stdlib.h>
#include<vector>
#include<iomanip>
#include<algorithm>
#include<queue>
#include<stack>
#include<map>
#include<limits.h>
#include<set>
#include<cstring>
#include<string>
#include<numeric>
#include <typeinfo>
#define inf 0x3f3f3f3f
#define MAX(a,b) ((a)>(b)?(a):(b))
using namespace std;
typedef long long ll;
int n,a[200010];
int dp[200010][2],jg=-1;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
// dp[0][1]=a[1];
for(int i=1;i<=n;i++){
dp[i][0]=dp[i-1][1]+a[i];
dp[i][1]=max(dp[i-1][0],dp[i-1][1]);
}
for(int i=1;i<=n;i++){
for(int j=0;j<2;j++){
jg=max(jg,dp[i][j]);
}
}
cout<<jg<<endl;
return 0;
}
#include<iostream>
#include<cstdio>
#include<cmath>
#include<stdio.h>
#include<stdlib.h>
#include<vector>
#include<iomanip>
#include<algorithm>
#include<queue>
#include<stack>
#include<map>
#include<limits.h>
#include<set>
#include<cstring>
#include<string>
#include<numeric>
#include <typeinfo>
#define inf 0x3f3f3f3f
#define MAX(a,b) ((a)>(b)?(a):(b))
using namespace std;
typedef long long ll;
int n;
string s;
ll sum[1000100][26];
int main()
{
cin>>n;
cin>>s;
for(int i=n-1;i>=0;i--){
for(int j=0;j<26;j++){
sum[i][j]=sum[i+1][j];
}
sum[i][s[i]-'a']=sum[i+1][s[i]-'a']+1;
}
ll res=0;
for(int i=0;i<n;i++){
for(int j=0;j<26;j++){
if(s[i]-'a'!=j)
res+=(sum[i+1][j]-1)*sum[i+1][j]/2;
}
}
cout<<res<<endl;
return 0;
}
#include<iostream>
#include<cstdio>
#include<cmath>
#include<stdio.h>
#include<stdlib.h>
#include<vector>
#include<iomanip>
#include<algorithm>
#include<queue>
#include<stack>
#include<map>
#include<limits.h>
#include<set>
#include<cstring>
#include<string>
#include<numeric>
#include <typeinfo>
#define inf 0x3f3f3f3f
#define MAX(a,b) ((a)>(b)?(a):(b))
using namespace std;
typedef long long ll;
int n,k;
ll a[1010];
ll dp[1010][1010];//前i个数取一些数的和模k=j的方案的最大值
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=0;i<n;i++){
for(int j=0;j<k;j++){
dp[i][j]=-1e18;
}
}
dp[0][0]=0;
for(int i=1;i<=n;i++){
for(int j=0;j<k;j++){
dp[i][(j+a[i])%k]=max(dp[i-1][j]+a[i],dp[i-1][(j+a[i])%k]);
}
}
if(dp[n][0]<=0)
cout<<-1<<endl;
else
cout<<dp[n][0]<<endl;
return 0;
}
#include<iostream>
#include<cstdio>
#include<cmath>
#include<stdio.h>
#include<stdlib.h>
#include<vector>
#include<iomanip>
#include<algorithm>
#include<queue>
#include<stack>
#include<map>
#include<limits.h>
#include<set>
#include<cstring>
#include<string>
#include<numeric>
#include <typeinfo>
#define inf 0x3f3f3f3f
#define MAX(a,b) ((a)>(b)?(a):(b))
using namespace std;
typedef long long ll;
int n;
ll a[100010],dp[100010][2];
int main(){
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
dp[1][1]=a[1];
dp[2][1]=a[2];
dp[2][0]=a[1];
for(int i=3;i<n-1;i++){
dp[i][0]=max(dp[i-1][0],dp[i-1][1]);
dp[i][1]=max(dp[i-3][0]+a[i],dp[i-3][1]+a[i]);
}
cout<<max(dp[n-2][0],dp[n-2][1])<<endl;
return 0;
}
#include<iostream>
#include<cstdio>
#include<cmath>
#include<stdio.h>
#include<stdlib.h>
#include<vector>
#include<iomanip>
#include<algorithm>
#include<queue>
#include<stack>
#include<map>
#include<limits.h>
#include<set>
#include<cstring>
#include<string>
#include<numeric>
#include <typeinfo>
#define inf 0x3f3f3f3f
#define MAX(a,b) ((a)>(b)?(a):(b))
using namespace std;
typedef long long ll;
vector<int>g[100010];
int dp[100010],n,q;
string s;
int dfs(int x){
int sum=s[x-1]=='R';
for(int i=0;i<g[x].size();i++)
sum+=dfs(g[x][i]);
return dp[x]=sum;
}
int main(){
cin>>n;
for(int i=2;i<=n;i++){
int x;
cin>>x;
g[x].push_back(i);
}
cin>>s;
dp[1]=dfs(1);
cin>>q;
while(q--){
int x;
cin>>x;
cout<<dp[x]<<endl;
}
return 0;
}