B:
又挂了,,这次因为自己在除的时候没有+ double 错了几次,被hack
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
#define sf scanf
#define pf printf
#define mem(a,b) memset(a,b,sizeof(a));
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define MP make_pair
#define ULL unsigned long long
#define LL long long
#define inf 0x3f3f3f3f
#define md ((ll+rr)>>1)
#define ls (i<<1)
#define rs (ls|1)
#define eps 1e-5
#define ree freopen("in.txt","r",stdin);
#define bug pf("----------------");
const int N=1010;
struct Node{
int id,h;
}a[N];
bool use[N];
int n;
bool deng(double l,double r){
double x=l-eps;
double y=l+eps;
if(r<y&&r>x)return true;
return false;
}
bool ok(int l,int r){
double tmp=double(a[r].h-a[l].h)/double(r-l);use[l]=1;use[r]=1;
for(int i=1;i<=n;++i){
if(use[i])continue;
if(i<l){
if(deng(double(a[l].h-a[i].h)/double(l-i),tmp)){use[i]=1;}
}
else if(i>l){
if(deng(double(a[i].h-a[l].h)/double(i-l),tmp))use[i]=1;
}
}
int cnt=0;
for(int i=1;i<=n;++i){
if(!use[i]){cnt++;}
}
if(cnt==0)return false;
else if(cnt==1)return true;
int id=0;
for(int i=1;i<=n;++i){
if(!use[i]&&id==0){ use[i]=1;id=i;
}
else if(!use[i]&&id){
if(!deng(double(a[i].h-a[id].h)/double(i-id),tmp))return false;
}
}
cnt=0;
if(cnt)return false;
return true;
}
int main(){
ios::sync_with_stdio(false);
cin>>n;
for(int i =1;i<=n;++i){ cin>>a[i].h; a[i].id=i;}
for(int i=1;i<=min(n,5);++i){
for(int j=i+1;j<=n;++j){
memset(use,0,sizeof(use));
if(ok(i,j)){puts("YES");return 0;}
}
}
puts("NO");
}
C:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
#define sf scanf
#define pf printf
#define mem(a,b) memset(a,b,sizeof(a));
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define MP make_pair
#define ULL unsigned long long
#define LL long long
#define inf 0x3f3f3f3f
#define md ((ll+rr)>>1)
#define ls (i<<1)
#define rs (ls|1)
#define eps 1e-5
#define ree freopen("in.txt","r",stdin);
#define bug pf("----------------");
#define N 100010
//2017年09月02日10:25:47
int num[N];
int main(){
num[2]=1;
for(int i=3;i<=100000;++i){
num[i]=(i*(i-1))/2;
}
int k;sf("%d",&k);
if(k==0){puts("a");return 0;}
for(char c='a';c<='z';++c){
int cnt=2;
while(num[cnt+1]<=k){++cnt;}
k-=num[cnt];
rep(i,1,cnt){
pf("%c",c);
}
if(k==0)break;
}puts("");
}