您的位置:首页 > 其它

hdu 5246(模拟)

2015-05-30 19:03 369 查看
题解:直接模拟

#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
const int N = 10005;
long long n, m, k;
long long s
;

int main() {
int t, cas = 1;
scanf("%d", &t);
while (t--) {
scanf("%lld%lld%lld", &n, &m, &k);
for (int i = 0; i < n; i++)
scanf("%lld", &s[i]);
sort(s, s + n);
if (s[0] > m) {
printf("Case #%d:\nmadan!\n", cas++);
continue;
}
if (s[n - 1] <= m) {
printf("Case #%d:\nwhy am I so diao?\n", cas++);
continue;
}
for (int i = 0; i < n; i++) {
if (s[i] > m) {
int flag = 1, flag2 = 0;
m = s[i - 1];
for (int j = i; j < n; j++) {
if (m + k >= s[j])
continue;
else {
m = s[j - 1];
if (k > 0)
k--;
if (m + k < s[j]) {
flag = 0;
break;
}
j--;
}
}
if (!flag)
printf("Case #%d:\nmadan!\n", cas++);
else
printf("Case #%d:\nwhy am I so diao?\n", cas++);
break;
}
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: