Pagini recente » Cod sursa (job #1191937) | Cod sursa (job #1761793) | Cod sursa (job #1189348) | Cod sursa (job #1002768) | Cod sursa (job #122488)
Cod sursa(job #122488)
#include<fstream>
using namespace std;
#define nmax 30001
#define inf 4294967295
char k[nmax];
int sol[nmax],sol2[nmax],sol7[nmax];
long long sol3[nmax],sol4[nmax],sol5[nmax],sol6[nmax];
int main()
{
ifstream f("bilute.in");
ofstream g("bilute.out");
int c1[nmax];
int n;
unsigned long long smax=4294967295;
f>>n; //4294967295
int i,j;
char naspa='0';
int val1,val2,sumo=0;
for(i=1; i<=n; ++i)
{ f>>val1>>val2;
if(val1)
{ c1[i]=val1;
sol5[i]=sol5[i-1]+c1[i];
sol[i]=val1*val2;
sol2[i]=sol[i]+sumo;
sumo=sol2[i];
}
else
{ k[i]='0'; naspa='1'; }
}
for(i=n; i>=1; i--)
sol6[i]=sol6[i+1]+c1[i];
for(i=1; i<=n; ++i)
sol3[i]=sol3[i-1]+sol5[i-1]+c1[i];
for(i=n; i>=1; --i){
sol4[i]=sol4[i+1]+sol6[i+1]+c1[i];
sol7[i]=sol7[i+1]+sol[i];}
unsigned long long sum;
int ibun;
char p='0';
for(i=1; i<=n; i++)
{
if(k[i]!='0')
{ sum=sol2[i-1]+sol7[i+1]+sol3[i-1]+sol4[i+1];
if(sum>4294967295){
sum/=10; p='1';}
if(sum<smax){
smax=sum;
ibun=i;}
}
}
if(p=='0')
g<<ibun<<" "<<smax<<"\n";
else
g<<ibun<<" "<<smax<<"0\n";
return 0;
}