回 帖 发 新 帖 刷新版面

主题:帮我解题!《不高兴的津津》

不高兴的津津
(unhappy.pas/dpr/c/cpp)

【问题描述】

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

【输入文件】

输入文件unhappy.in包括七行数据,分别表示周一到周日的日程安排。每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

【输出文件】

输出文件unhappy.out包括一行,这一行只包含一个数字。如果不会不高兴则输出0,如果会则输出最不高兴的是周几(用1, 2, 3, 4, 5, 6, 7分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。

【样例输入】

5 3
6 2
7 2
5 3
5 4
0 4
0 6

【样例输出】

3

回复列表 (共6个回复)

沙发

这是第十届上海“上中杯”noip复赛普及组试题。

板凳

这题用循环就可以做出来了
我是没做过,但我看别人做过

3 楼

program nohappy;
{$APPTYPE CONSOLE}
var
  sWu,xWu,d,Zong,i : byte;
begin
  d:=0;
  Zong:=0;
  for i:=1 to 7 do
    begin
      readln(sWu,xWu);
      if Zong<sWu+xWu then
       begin
         Zong := sWu+xWu;
         d := i;
       end;
    end;
  if Zong>8 then
    Writeln(d);
  readln;
end.

//算法就在这里,其他的你自己写。

4 楼

很容易,下面是原程序
var a,i,x,y,d,max : byte;
begin
  assign(input,'unhappy.in'); reset(input);
  assign(output,'unhappy.out'); rewrite(output);
  d := 0; max :=8;
  for i := 1 to 7 do begin
    readln(x,y);
    a := x+y;
    if a>max then
    begin
      max :=a; d := i;
    end;
  end;
  writeln(d);
  close(input); close(output);
end.

5 楼

program unhappy;
var
  m,n:array[1..7] of byte;
  i,max,ans:byte;

{main program}
begin
  {input}
  for i:=1 to 7 do readln(m[i],n[i]);

  {init}
  max:=0;

  {work}
  for i:=1 to 7 do
    if (m[i]+n[i])>max then
    begin
      max:=m[i]+n[i];
      ans:=i;
    end;

  {output}
  if max<=8 then writeln(0)
  else writeln(ans);
end.

6 楼

program unhappy(input,output);
var
a,b:array [1..7] of integer;
c,d,e,i,j:integer;
begin
d:=0;e:=0;
for i:=1 to 7 do
begin
readln(a[i],b[i]);c:=a[i]+b[i];if (c>8) or (c>d) then e:=i;
end;
writeln(e);
end.

我来回复

您尚未登录,请登录后再回复。点此登录或注册