#include <iostream>
using namespace std;
int main()
{
int a[100001],i,b,c,d,h,j,f;
while (cin>>b>>c)
{
for(i=1;i<=b;i++)
{
cin>>a[i];
}
for(i=1;i<=c;i++)
{
f=0;
cin>>j>>d;
for (h=j;h<=d;h++)
f+=a[h];
cout <<f<<endl;
}
}
return 0;}
#include
using namespace std;
int main()
{
int a[100001],i,b,c,d,h,j,f;
while (cin>>b>>c)
{
for(i=1;i<=b;i++)
{
cin>>a[i];
}
for(i=1;i<=c;i++)
{
f=0;
cin>>j>>d;
for (h=j;h<=d;h++)
f+=a[h];
cout <<f<<endl;
}
}
return 0;}
前面有討論說要建表。
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int n,m;
while(cin>>n>>m){
int y[n+1],x;
y[0]=0;
for(int i=0;i<n;i++){
cin>>x;
y[i+1]=y[i]+x;
}
while(m--){
int a,b;
cin>>a>>b;
cout<<y[b]-y[a-1]<<endl;
}
}
return 0;
}
其實你若不是使用endl而是使用"\n",這份程式可以跑更快(當然和有沒有做前綴和比起來,影響不算那麼嚴重)