杭电的BestCoder 34, 第一题,水题很简单:
题意,找一个电影院使话费最少,由于是团购,所以票的个数可能大于人的个数,水题,直接按照题意排序就好了
贴代码:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
int n, m;
typedef struct node
{
int a, b;
};
node sq[200];
int cmp(node x, node y)
{
int x1, y1;
x1 = n%x.a==0 ? n/x.a : n/x.a+1;
y1 = n%y.a==0 ? n/y.a : n/y.a+1;
return x1*x.b < y1*y.b;
}
int main()
{
while(~scanf("%d%d", &n, &m))
{
for(int i=0; i<m; ++i)
{
scanf("%d%d", &sq[i].a, &sq[i].b);
}
sort(sq, sq+m, cmp);
int x = 0;
if(n % sq[0].a == 0)
x = (n/sq[0].a) * sq[0].b;
else
x = (n/(sq[0].a)+1)*sq[0].b;
printf("%d\n",x);
}
return 0;
}
顺便吐槽下,为什么cb的比赛中的数据这么弱,我代码根本就是错误的,但是提交上竟然AC了。。。结果可想而知,
悲剧的第一道题WA了。。。唉,还是自己太弱了。。。