这是我写的代码 前2个测试数据都能多 自己想了几个也可以 就是那100个的过不了,是不是你贴上来的数据有误啊?如果没有,请帮我看下我这么写错哪了啊
代码:
#include<iostream>
using namespace std;
int main()
{
int n;
while(cin >> n)
{
int v,w,power[10009]={0};
for(int i=0; i<n; ++i)
{
cin >> w >> v;
power[i]=w-v;
}
int min,sum,flag,min1=0,begin,end;
for(int j=n; j>1; j--)
{
sum=0; flag=0; min=9999999;
for(i=0; i<n; ++i)
{
if(power[i]!=0)
{
sum+=power[i];
flag++;
if(flag==2)
{
if(sum<min)
{
min=sum;
begin=v;
end=i;
}
sum=power[i];
flag=1;
}
if(flag==1)
v=i;
}
}
min1+=min;
power[begin]=min;
power[end]=0;
}
cout<< min1 <<endl;
}
return 0;
}
代码:
#include<iostream>
using namespace std;
int main()
{
int n;
while(cin >> n)
{
int v,w,power[10009]={0};
for(int i=0; i<n; ++i)
{
cin >> w >> v;
power[i]=w-v;
}
int min,sum,flag,min1=0,begin,end;
for(int j=n; j>1; j--)
{
sum=0; flag=0; min=9999999;
for(i=0; i<n; ++i)
{
if(power[i]!=0)
{
sum+=power[i];
flag++;
if(flag==2)
{
if(sum<min)
{
min=sum;
begin=v;
end=i;
}
sum=power[i];
flag=1;
}
if(flag==1)
v=i;
}
}
min1+=min;
power[begin]=min;
power[end]=0;
}
cout<< min1 <<endl;
}
return 0;
}