超时代码:
#include<iostream>
#include<queue>
#include<malloc.h>
#include<cstdio>
#include<vector>
#include<cstring>
using namespace std;
int main()
{
int n;
int m;
cin>>n;
int d[n+1];
int a[10005];
int b[10005];
int s=0;
for(int i=1; i<n+1; i++){
cin>>d[i];
s=s+d[i];
}
cin>>m;
for(int i=0; i<m; i++){
cin>>a[i]>>b[i];
if(b[i]<a[i]){
int t;
t=b[i];
b[i]=a[i];
a[i]=t;
}
}
for(int i=0; i<m; i++){
int s1=0,s2=0;
for(int j=a[i]; j<b[i]; j++){
s1=s1+d[j];
}
s2=s-s1;
if(s1<s2) cout<<s1<<endl;
else cout<<s2<<endl;
}
return 0;
}
AC代码:
#include<iostream>
#include<queue>
#include<malloc.h>
#include<cstdio>
#include<vector>
#include<cstring>
using namespace std;
int main()
{
int n;
int m;
cin>>n;
int d[n+1];
int a[10005];
int b[10005];
int x[100005];
x[0]=0;
x[1]=0;
int s=0;
for(int i=1; i<n+1; i++){
cin>>d[i];
s=s+d[i];
x[i+1]=d[i]+x[i];
}
cin>>m;
for(int i=0; i<m; i++){
cin>>a[i]>>b[i];
if(b[i]<a[i]){
int t;
t=b[i];
b[i]=a[i];
a[i]=t;
}
}
for(int i=0; i<m; i++){
int s1=0;
s1=s-x[b[i]]+x[a[i]];
if(s1<x[b[i]]-x[a[i]]) cout<<s1<<endl;
else cout<<x[b[i]]-x[a[i]]<<endl;
}
return 0;
}