Pagini recente » Cod sursa (job #2072158) | Cod sursa (job #2142918) | Cod sursa (job #2516401) | Cod sursa (job #2829252) | Cod sursa (job #464047)
Cod sursa(job #464047)
using namespace std;
#include<iostream>
#include<fstream>
#include<cstring>
int a[50005],dp[50005][4],N,K=3;
ofstream fout("secvente.out");
void solve()
{int i,j,last,sol=0;;
for(i=1;i<=N;i++)
dp[i][ a[i] % K] = 1;
for(i=2;i<=N;i++)
for(j=0;j<=2;j++)
{ dp[i][j] = max ( dp[i][j] , dp[i-1][j]);
last = ((j - a[i] ) % K + K) % K;
if (dp[ i - 1][last])
dp[i][j] = max (dp[i][j], dp[i - 1][last] + 1);
}
for(i=1;i<=N;i++)
sol=max(sol,dp[i][0]);
fout<<sol<<"\n";
}
void cit()
{int i,j;
ifstream fin("secvente.in");
for(i=1;i<=3;i++)
{fin>>N;
memset(a,sizeof(a),0);
memset(dp,sizeof(dp),0);
for(j=1;j<=N;j++)
fin>>a[j];
solve();
}
fin.close();
}
int main()
{
cit();
fout.close();
return 0;
}