| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
请大牛看看为什么会Runtime error?#include<iostream.h>
using namespace std;
#define MAX 12001
int f[MAX][MAX];
struct money
{
int v,num;
}q[MAX];
int compare (const void *p, const void *q)
{
return ((*(money*)q).v >(*(money*)p).v)? 1:-1;
}
int main()
{
int n,m,temp;
int i,j,k;
while(scanf("%d",&m)!=EOF)
{
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d%d",&q[i].num,&q[i].v);
if(m==0 || n==0)
printf("0\n");
else
{
qsort(q,m,sizeof(money),compare);
for(i=0;i<=q[0].num;i++) f[0][i]=i*q[0].v;
for(i=1;i<n;i++)
{
for(j=0;j<=q[i].num;j++)
{
f[i][j]=0;
for(k=0;k<=q[i-1].num;k++)
if( f[i-1][k]+ j*q[i].v <= m && f[i-1][k]+j*q[i].v > f[i][j] ) f[i][j]=f[i-1][k]+j*q[i].v;
//if(f[i][j]==0) break;
}
}
temp=0;
for(k=0;k<=q[n-1].num;k++)
if(f[n-1][k]>temp) temp=f[n-1][k];
printf("%d\n",temp);
}
}
system("pause");
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator