題目鏈接http://acm.nyist.net/JudgeOnline/problem.php?pid=53
描述
小明又出問題了。媽媽認爲聰明的小明應該更加用功學習而變的更加厲害,所以小明除了上學之外,還要參加媽媽爲他報名的各科複習班。另外每週媽媽還會送他去學習朗誦、舞蹈和鋼琴。但是小明如果一天上課超過八個小時就會不高興,而且,上得越久就會越不高興。假設小明不會因爲其它事不高興,並且她的不高興不會持續到第二天。請你幫忙檢查一下小明下週的日程安排,看看下週他會不會不高興;如果會的話,哪天最不高興。- 輸入
- 第一行輸入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; struct N { int day; int sum; } p[99]; int cmp(N a,N b) { return a.sum<b.sum; } int main() { int n,x,y; scanf("%d",&n); while(n--) { for(int i=1; i<=7; i++) { scanf("%d%d",&x,&y); p[i].sum=x+y; p[i].day=i; } sort(p,p+7,cmp); int maxn=-1; int w; for(int i=1; i<=7; i++) { if(p[i].sum>maxn) { maxn=p[i].sum; w=i; } } if(maxn>8) printf("%d\n",p[w].day); else printf("0\n"); } }
法2
#include<iostream> #include<string.h> #include<stdio.h> #include<ctype.h> #include<algorithm> #include<stack> #include<queue> #include<set> #include<math.h> #include<vector> #include<deque> #include<list> using namespace std; int main() { int a[7],b[7],m,n,c[7],i,k=0; scanf("%d",&n); while(n--) { k=0; memset(c,0,sizeof(c)); for(i=1;i<=7;i++) { scanf("%d%d",&a[i],&b[i]); c[i]=a[i]+b[i]; } int max=-1; for(i=1;i<=7;i++) { if(max<c[i]) { max=c[i]; k=i; } } if(max>8) printf("%d\n",k); else printf("0\n"); } return 0; }