1. 程式人生 > >不高興的小名 nyoj

不高興的小名 nyoj

i+1 can 個數 ret 除了 algo UC 表示 ble

不高興的小明

時間限制:3000 ms | 內存限制:65535 KB 難度:1
描述
小明又出問題了。媽媽認為聰明的小明應該更加用功學習而變的更加厲害,所以小明除了上學之外,還要參加媽媽為他報名的各科復習班。另外每周媽媽還會送他去學習朗誦、舞蹈和鋼琴。但是小明如果一天上課超過八個小時就會不高興,而且,上得越久就會越不高興。假設小明不會因為其它事不高興,並且她的不高興不會持續到第二天。請你幫忙檢查一下小明下周的日程安排,看看下周他會不會不高興;如果會的話,哪天最不高興。
輸入
第一行輸入N(0<N<100)表示測試數據組數,接下來每組測試數據輸入包括七行數據,分別表示周一到周日的日程安排。每行包括兩個小於10的非負整數,用空格隔開,分別表示津津在學校上課的時間和媽媽安排她上課的時間。
輸出
每組測試數據輸出包括一行,這一行只包含一個數字。如果不會不高興則輸出0,如果會則輸出最不高興的是周幾(用1,2,3,4,5,6,7分別表示周一,周二,周三,周四,周五,周六,周日)。如果有兩天或兩天以上不高興的程度相當,則輸出時間最靠前的—天。
樣例輸入
1
5 3
6 2
7 2
5 3
5 4
0 4
0 6
樣例輸出
3

#include <stdio.h>
#include <algorithm>
using namespace std;

typedef struct
{
int sum,day;
}D;

bool cmp(D d1,D d2)
{
if(d1.sum!=d2.sum)
return d1.sum<d2.sum;
else
return d1.day>d2.day;
}

int main()
{
int n,i,j,l;
scanf("%d",&n);
int a[7],b[7];
D d[7];
while(n--)
{
int k=0;
for(i=0;i<7;i++)
scanf("%d%d",&a[i],&b[i]);

for(i=0,j=0;i<7;i++)
if(a[i]+b[i]>8)
{
d[i].sum=a[i]+b[i];
d[i].day=i+1;
k++;
}
else
d[i].day=d[i].sum=0;

if(k==0)
printf("%d\n",0);
sort(d,d+7,cmp);
printf("%d\n",d[6].day);
}
return 0;
}

不高興的小名 nyoj