Pagini recente » Diferente pentru utilizator/apocalypto intre reviziile 157 si 211 | Monitorul de evaluare | Diferente pentru utilizator/apocalypto intre reviziile 197 si 198 | Diferente pentru utilizator/apocalypto intre reviziile 211 si 174 | Diferente pentru utilizator/apocalypto intre reviziile 166 si 167
Nu exista diferente intre titluri.
Diferente intre continut:
* ==user(user="bogdan_tmm" type="normal")==
* ==user(user="f.v.anton" type="normal")==
* ==user(user="blasterz" type="normal")==
using namespace std;
#include<iostream>
#include<fstream>
#include<vector>
#define pb push_back
ofstream fout("vedete.out");
int N,K,T;
int v[105],r[105];
vector<int> H[30005];
int dp[30005][105];
void solve()
{ int i,j,ans,ot;
vector<int>::iterator it;
for(i=0;i<=T;i++)
{
dp[i][0]=max(dp[i-1][0],dp[i-1][1]);
//if(H[i] && r[H[i]]==0) {dp[i][0]+=v[H[i]];
//}
j=0;
if(H[i].size())
{
ot=0;
for(it=H[i].begin();it<H[i].end();it++)
{
if(r[*it]==j) ot=max(ot,v[*it]);
}
dp[i][j]+=ot;
}
for(j=1;j<=K;j++)
{
dp[i][j]=max(dp[i-1][j-1],max(dp[i-1][j+1],dp[i-1][j]));
// if(H[i] && r[H[i]]==j) dp[i][j]+=v[H[i]];
if(H[i].size())
{ ot=0;
for(it=H[i].begin();it<H[i].end();it++)
{
if(r[*it]==j) ot=max(ot,v[*it]);
}
dp[i][j]+=ot;
}
}
}
ans=0;
for(i=1;i<=K;i++)
ans=max(ans,dp[T][i]);
fout<<ans<<"\n";
/*for(i=1;i<=16;i++)
{
for(j=0;j<=K;j++)
{
cout<<dp[i][j]<<" ";
}
cout<<"\n";
}*/
}
void cit()
{
ifstream fin("vedete.in");
int i,x;
fin>>N>>K>>T;
for(i=1;i<=N;i++)
{
fin>>x;
H[x].pb(i);
}
//for(i=1;i<=16;i++)
//fout<<H[i].size()<<" ";
for(i=1;i<=N;i++)
fin>>v[i];
for(i=1;i<=N;i++)
fin>>r[i];
fin.close();
}
int main()
{
cit();
solve();
fout.close();
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.