超时了

cgr202440025189 发表于 4天前 · 关联问题 一鸣师姐与阿枯城

include <stdio.h>

include <stdlib.h>

int main() {

int h=0,ark=0,k=0,kh=0;//主角树形 int t=0;//当前时刻 int hi=0,arki=0,ti=0;//怪物信息 scanf("%d %d %d %d",&h,&ark,&k,&kh); int max_h=h; int n=0;//怪物数量 scanf("%d",&n); int *p=(int*)malloc(3*n*sizeof(int)); for(int i=0;i<n;i++) { scanf("%d %d %d",&hi,&arki,&ti); p[3*i]=hi; p[3*i+1]=arki; p[3*i+2]=ti; } int flag=0; while(1) { if(n>1) { int u=0; for(int i=u;i<n-1;i++) { if(p[3*i+2]>p[3*i+5]) { u=p[3*i]; p[3*i]=p[3*i+3]; p[3*i+3]=u; u=p[3*i+1]; p[3*i+1]=p[3*i+4]; p[3*i+4]=u; u=p[3*i+2]; p[3*i+2]=p[3*i+5]; p[3*i+5]=u; u=i+1; break; } else if(i==n-2) { flag=-1; break; } } if(flag==-1)break; } else break; } for(int i=0;i<n;i++) { hi=p[3*i]; arki=p[3*i+1]; ti=p[3*i+2]; if(h<=0 && ti<t+k) { printf("My Milk!"); exit(0); } if(ti<t) { printf("My Milk!"); exit(0); } if((ti-t)>=k) { h+=kh; if(h>max_h)h=max_h; }//回血判断 if(h<=0) { printf("My Milk!"); exit(0); } t=ti; while(h>0 && hi>0) { h-=arki; hi-=ark; t+=1; } if(h>0 && i==n-1) { printf("Mission Complete."); exit(0); } //退出时必然死了一个 if(h<=0 && hi>=0) { printf("My Milk!"); exit(0); } else if(h<=0 && hi<=0) { if(i==n-1) { printf("My Milk!"); exit(0); } else { h=0; continue; } } } free(p); return 0;

}