Pagini recente » Cod sursa (job #2887573) | Cod sursa (job #368530) | Cod sursa (job #268039) | Cod sursa (job #19584) | Cod sursa (job #2184161)
#include <fstream>
#define NM 250003
using namespace std;
ifstream f("cuburi2.in");
ofstream g("cuburi2.out");
int n,m,i,j,x,y,min1,sum,poz;
int s[NM],d[NM],a[NM],S[NM],D[NM];
int main()
{
f>>n>>m;
for(i=1;i<=n;i++) f>>a[i];
sum=0;
for(i=1;i<=n;i++) { sum+=a[i]; s[i]=s[i-1]+sum; S[i]=sum; }
sum=0;
for(i=n;i>=1;i--) { sum+=a[i]; d[i]=d[i+1]+sum; D[i]=sum; }
for(i=1;i<=m;i++){
f>>x>>y;
min1=s[n]+d[1];
for(j=x;j<=y;j++){
if(j==x) sum=(d[j+1]-d[y+1]-D[y+1]);
else
if(j==y) sum=(s[j-1]-s[x-1]-S[x-1]);
else sum=(s[j-1]-s[x-1]-S[x-1])+(d[j+1]-d[y+1]-D[y+1]);
if(sum<min1) { min1=sum; poz=j; }
}
g<<poz<<' '<<min1<<'\n';
}
return 0;
}