1 条题解
-
0
C++ :
#include<iostream> #include<cstdio> using namespace std; int Mana,Space,Timeleft; void init(void) { //freopen("escape.in","r",stdin); //freopen("escape.out","w",stdout); cin>>Mana>>Space>>Timeleft; return; } void escape(void) { int SpaceElse=0,TimeleftElse=Timeleft; while(Mana>=10&&Timeleft>0&&Space-SpaceElse>0) { if(Space-SpaceElse>17) { SpaceElse+=60; Mana-=10; Timeleft--; } else cout<<"Yes"<<endl<<TimeleftElse-Timeleft+1; } while(Timeleft>0&&Space-SpaceElse>0) { if((Mana==0||Mana==1)&&Timeleft>=7&&Space-SpaceElse>102) { Timeleft-=7;SpaceElse+=120; } else if(Mana>=2&&Mana<=5&&Timeleft>=3&&Space-SpaceElse>34) { Mana-=2;Timeleft-=3;SpaceElse+=60; } else if(Mana>=6 && Timeleft>=2 && Space-SpaceElse>17) { Mana-=6;Timeleft-=2;SpaceElse+=60; } else { SpaceElse+=17;Timeleft--; } } if(Space<=SpaceElse) cout<<"Yes"<<endl<<TimeleftElse-Timeleft; else cout<<"No"<<endl<<SpaceElse; return; } int main(void) { init(); escape(); return 0; }
Pascal :
var m,s,t,ti:longint; ms:array[1..2,0..300000] of longint; ts:array[0..300000] of longint; begin readln(m,s,t); ms[2,0]:=m; ts[0]:=0; for ti:=1 to t do begin if ms[2,ti-1]>=10 then begin ms[1,ti]:=ms[1,ti-1]+60; ms[2,ti]:=ms[2,ti-1]-10; end else begin ms[1,ti]:=ms[1,ti-1]; ms[2,ti]:=ms[2,ti-1]+4; end; if ts[ti-1]+17>ms[1,ti] then ts[ti]:=ts[ti-1]+17 else ts[ti]:=ms[1,ti]; if ts[ti]>=s then begin writeln('Yes'); writeln(ti); close(input); close(output); halt; end; end; writeln('No'); writeln(ts[t]); end.
- 1
信息
- ID
- 1793
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者