题目链接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; }