10249 The Grand Dinner
2013-02-27 13:42
302 查看
#include<cstdio>
#include<cstring>
#include<cstdlib>
int min(int a,int b)
{
return a>b?b:a;
}
struct S
{
int id,x;
int c[110];
} a[110],b[110];
int cmp(const void *a,const void *b)
{
struct S *p = (struct S *)a;
struct S *q = (struct S *)b;
return q->x-p->x;
}
int cmp1(const void *a,const void *b)
{
struct S *p = (struct S *)a;
struct S *q = (struct S *)b;
return p->id-q->id;
}
int cmp2(const void*a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)==2)
{
if(!n&&!m) break;
for(int i = 0; i < n; i++)
{
scanf("%d",&a[i].x);
a[i].id = i;
}
for(int i = 0; i < m; i++)
{
scanf("%d",&b[i].x);
b[i].id = i;
}
qsort(a,n,sizeof(a[0]),cmp);
qsort(b,m,sizeof(b[0]),cmp);
int flag=0;
for(int i = 0; i < n; i++)
{
int t = a[i].x,tb=0,lc=0;
for(int j = 0; j < min(t,m); j++)
{
if(b[j].x)
{
b[j].x--;
a[i].c[lc++] = b[j].id;
tb++;
}
else t++;
}
if(tb<t)
{
flag=1;
break;
}
}
qsort(a,n,sizeof(a[0]),cmp1);
if(flag) printf("0\n");
else
{
printf("1\n");
for(int i = 0; i < n; i++)
{
qsort(a[i].c,a[i].x,sizeof(a[i].c[i]),cmp2);
for(int j = 0; j < a[i].x; j++)
printf("%d%c",a[i].c[j]+1,j==a[i].x-1?'\n':' ');
}
}
}
return 0;
}
#include<cstring>
#include<cstdlib>
int min(int a,int b)
{
return a>b?b:a;
}
struct S
{
int id,x;
int c[110];
} a[110],b[110];
int cmp(const void *a,const void *b)
{
struct S *p = (struct S *)a;
struct S *q = (struct S *)b;
return q->x-p->x;
}
int cmp1(const void *a,const void *b)
{
struct S *p = (struct S *)a;
struct S *q = (struct S *)b;
return p->id-q->id;
}
int cmp2(const void*a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)==2)
{
if(!n&&!m) break;
for(int i = 0; i < n; i++)
{
scanf("%d",&a[i].x);
a[i].id = i;
}
for(int i = 0; i < m; i++)
{
scanf("%d",&b[i].x);
b[i].id = i;
}
qsort(a,n,sizeof(a[0]),cmp);
qsort(b,m,sizeof(b[0]),cmp);
int flag=0;
for(int i = 0; i < n; i++)
{
int t = a[i].x,tb=0,lc=0;
for(int j = 0; j < min(t,m); j++)
{
if(b[j].x)
{
b[j].x--;
a[i].c[lc++] = b[j].id;
tb++;
}
else t++;
}
if(tb<t)
{
flag=1;
break;
}
}
qsort(a,n,sizeof(a[0]),cmp1);
if(flag) printf("0\n");
else
{
printf("1\n");
for(int i = 0; i < n; i++)
{
qsort(a[i].c,a[i].x,sizeof(a[i].c[i]),cmp2);
for(int j = 0; j < a[i].x; j++)
printf("%d%c",a[i].c[j]+1,j==a[i].x-1?'\n':' ');
}
}
}
return 0;
}
相关文章推荐
- UVa Problem 10249 The Grand Dinner - 网络流解题
- UVa10249 - The Grand Dinner(为什么超时)
- UVA - 10249 The Grand Dinner
- 10249 - The Grand Dinner 最大流
- UVa Problem 10249 The Grand Dinner (丰盛的晚餐)
- UVA - 10249 The Grand Dinner
- UVA - 10249 The Grand Dinner
- UVA-10249 - The Grand Dinner(最大流)
- (beginer) 网络流 UVA 10249 - The Grand Dinner
- UVA 10249 - The Grand Dinner(网络流 or 贪心)
- OMPL wins the 2012 OSS World Challenge Grand Prize
- everything is all right, except the dinner!
- Timus Online Judge:2010. Sasha the Young Grandmaster
- A Guide to Blocks & Grand Central Dispatch (and the Cocoa API's making use of them)
- LightOJ 1350 Aladdin and the Grand Feast 最大流(难)
- lyrics of <The message> in Grandmaster Flash and the Furious Five song
- 【320K】大峡谷The Music of The Grand Canyon
- IT史记-the grand masters
- uncover the hood of j2ee cluster
- [ABAP Part TWO] Program Development Phase 2 - Your Coding Style Define The Quality