Mikamedo @ 2018-12-17 19:12:57
如下,过样例,只求改WA,不求改RE
#include<bits/stdc++.h>
using namespace std;
int n,m,s;
int W[105];
int V[105];
int L[105];
int R[105];
long long calculate(int w)
{
int num,sum,ans=0;
for(int i=1;i<=m;i++)
{
num=0,sum=0;
for(int j=min(L[i],R[i]);j<=max(L[i],R[i]);j++)
if(W[j]>=w)
{
num++;
sum+=V[j];
}
ans+=num*sum;
}
return abs(ans-s);
}
int main()
{
scanf("%d%d%d",&n,&m,&s);
for(int i=1;i<=n;i++)
scanf("%d%d",&W[i],&V[i]);
for(int i=1;i<=m;i++)
scanf("%d%d",&L[i],&R[i]);
int l=1,r=n;
int mid;
long long min=1e+13;
for(int i=1;i<=n;i++)
if(calculate(i)<min)
min=calculate(i);
printf("%d",min);
return 0;
}
by 李泽影 @ 2018-12-17 19:49:52
。。。
by Mikamedo @ 2018-12-17 20:01:37
#include<bits/stdc++.h>
using namespace std;
int n,m,s;
int W[105];
int V[105];
int L[105];
int R[105];
long long calculate(int w)
{
int num,sum,ans=0;
for(int i=1;i<=m;i++)
{
num=0,sum=0;
for(int j=max(R[i],L[i]);j<=max(R[i],L[i]);j++)
if(W[j]>=w)
{
num++;
sum+=V[j];
}
ans+=num*sum;
}
return abs(ans-s);
}
int main()
{
scanf("%d%d%d",&n,&m,&s);
for(int i=1;i<=n;i++)
scanf("%d%d",&W[i],&V[i]);
for(int i=1;i<=m;i++)
scanf("%d%d",&L[i],&R[i]);
int l=1,r=n;
int mid;
long long min=1e+13;
for(int i=1;i<=n;i++)
if(calculate(i)<min)
min=calculate(i);
printf("%d",min);
return 0;
}