。。。。。。。。
WA了好半天忽然发现。。。。。。。。连题意都理解错了。。。。。。!!!
摔!
原来每次战胜一个人,能力值就减一。
因为如果能力值比敌人大,能力值就不会增长了,所以每次的能力值一定要卡在值上。
#include <stdio.h>
#include <algorithm>
#include <iostream>
#include <map>
using namespace std;
#define maxn 10010
#define ll long long
ll a[maxn];
map<ll,ll>vis;
int main()
{
int T,cas=0;
cin>>T;
while(T--)
{
ll Max=-1;
ll n,m,k,st=-1; // take care of k
scanf("%lld%lld%lld",&n,&m,&k);
for(int i=0;i<n;i++)
{scanf("%lld",a+i);Max=max(Max,a[i]);if(a[i]<=m&&a[i]>st) st=a[i];}
printf("Case #%d:\n",++cas);
//if(m+n*k-k*(k-1)/2<Max) {cout<<"madan!"<<endl;continue;}
if(m>=Max) {printf("why am I so diao?\n");continue;}
sort(a,a+n);
if(st==-1) {printf("madan!\n");continue;}
ll flag=0;
ll now=k;
for(int i=0;i<n;i++)
{
if(st<a[i])
{
if(st+now>=a[i]) st=a[i];
else {flag=1;break;}
if(now>0) now--;
}
else if(now>0) now--;
}
if(flag) printf("madan!\n");
else printf("why am I so diao?\n");
}
return 0;
}