Section 1.1 gift1

这道题的题目要求是求每个人收到礼物的总价值和送出去礼物总价值的差值。关键点是

每个人送出的礼物总价值和送给人数存在整除的关系,所以处理的时候要注意/和%的区别,

然后用strcmp找到送或者收到礼物的人,在结构体数组相应的money加上或者减去相应的金额。

/*
ID:yucept21
LANG:C++
TASK:gift1
*/

#include<cstdio>
#include<cstring>
#include<cstdlib>

int N;
typedef struct p
{
char na[15];
int ney;
}G;
G tt[15];

void init()
{
scanf( "%d", &N);
for( int i = 0; i < N; i ++)
{
scanf( "%s", tt[i].na);
tt[i].ney = 0;
}
}

int main()
{
char name[15];
int num, money;

freopen( "gift1.in", "r", stdin);
freopen( "gift1.out", "w", stdout);

int j;
init();
for( int i = 0; i < N; i ++)
{
scanf( "%s%d%d", &name, &money, &num);
for( j = 0; j < N; j ++)
if( strcmp( tt[j].na, name) == 0) break;
if( num != 0)
tt[j].ney += (money % num);
tt[j].ney -= money;
for( int k = 0; k < num; k ++)
{
scanf( "%s", name);
for( j = 0; j < N; j ++)
if( strcmp( name, tt[j].na) == 0) {
tt[j].ney += (money / num);
break;
}
}
}
for( int i = 0; i < N; i ++)
printf( "%s %d\n", tt[i].na, tt[i].ney);
return 0;
}

 

你可能感兴趣的:(gif)