Pagini recente » Istoria paginii runda/rar28 | Cod sursa (job #1495233) | Istoria paginii runda/iiot45/clasament | Cod sursa (job #1367800) | Cod sursa (job #767565)
Cod sursa(job #767565)
#include <fstream>
using namespace std;
ifstream fin("sequencequery.in");
ofstream fout("sequencequery.out");
void citire ( int &,int &);
void ssm (int ,int );
int max ( int ,int );
int v[6000020];
int main()
{
int n,k,i,x,y;
citire(n,k);
for(i=0;i<k;i++)
{
fin>>x>>y;
ssm (x,y);
}//fout<<n;
return 0;
}
void ssm ( int a, int b)
{
long long i,best[4],maxim;
//fin>>v[i];
best[a%2]=v[a];
maxim=v[a];
for (i=a+1;i<=b;i++)
{
//fin>>v[i];
best[i%2]=max(v[i],best[!(i%2)]+v[i]);
//if (v[i]>best[!(i%2)]+v[i])
//{
// istart=i;
//}
if(best[i%2]>maxim)
{
// imaxs=istart;
// imaxsf=i;
maxim=best[i%2];
}
}
//if (maxim>best[b])
fout<<maxim<<"\n";//'<<imaxs<<" "<<imaxsf;
//else
// fout<<best[b]<<" "<<istart<<" "<<b;
}
void citire (int &n,int &k)
{
int i;
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>v[i];
}
}
int max ( int a,int b)
{
if (a>b)
return a;
return b;
}