| ||||||||||
| 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 | |||||||||
请哪位大牛指教?为什么是运行错误??#include<stdio.h>
#include<math.h>
typedef struct node
{
int x;
int r;
int c;
}jilu;
void sort(jilu a[],int n)
{
int i,j,t;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
{
if(a[i].x<a[j].x)
{
t=a[i].x;
a[i].x=a[j].x;
a[j].x=t;
t=a[i].r;
a[i].r=a[j].r;
a[j].r=t;
t=a[i].c;
a[i].c=a[j].c;
a[j].c=t;
}
}
}
int m(jilu a[],int n,int k)
{
long sum2=0;
int i=1,sum;
if(k<2*(a[i].r+1)+1)
return sum2;
for(i=1;i<=n;i++)
{ sum=0;
if(i==1&&k>=2*a[i].r+1)
{
sum+=a[i].r+1;sum2+=a[i].x;k=k-sum;
}
else{
if(k>=(abs(a[i].r-a[i-1].r)+abs(a[i].c-a[i-1].c)+1+a[i].r))
{
sum+=abs(a[i].r-a[i-1].r)+abs(a[i].c-a[i-1].c)+1;
sum2+=a[i].x;k=k-sum;
}
else break;
}
}
return (sum2);
}
void main()
{
int q,T,M,N,K,i,j,w,s=1;
jilu record[102];
scanf("%d",&T);
for(q=1;q<=T;q++)
{ s=1;
scanf("%d %d %d",&M,&N,&K);
for(i=1;i<=M;i++)
for(j=1;j<=N;j++)
{
scanf("%d",&w);
if(w!=0)
{
record[s].x=w;
record[s].r=i;
record[s].c=j;
s++;
}
}
sort(record,s-1);
printf("%d\n",m(record,s-1,K));
}
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator