您的位置:首页 > 其它

problem - 616B -codeforces

2016-01-19 18:35 363 查看
点击打开链接

[align=center]B. Dinner with Emma[/align]

time limit per test
1 second

memory limit per test
256 megabytes

input
standard input

[align=center]output[/align]
[align=center]standard output
[/align]

Jack decides to invite Emma out for a dinner. Jack is a modest student, he doesn't want to go to an expensive restaurant. Emma is a girl with high taste, she prefers elite places.

Munhattan consists of n streets and
m avenues. There is exactly one restaurant on the intersection of each street and avenue. The streets are numbered with integers from
1 to n and the avenues are numbered with integers from
1 to m. The cost of dinner in the restaurant at the intersection of the
i-th street and the
j-th avenue is cij.

Jack and Emma decide to choose the restaurant in the following way. Firstly Emma chooses the street to dinner and then Jack chooses the avenue. Emma and Jack makes their choice optimally: Emma wants to maximize the cost of the dinner, Jack wants to minimize
it. Emma takes into account that Jack wants to minimize the cost of the dinner. Find the cost of the dinner for the couple in love.

Input
The first line contains two integers n, m (1 ≤ n, m ≤ 100) — the number of streets and avenues in Munhattan.

Each of the next n lines contains
m integers cij (1 ≤ cij ≤ 109) — the cost of the dinner
in the restaurant on the intersection of the i-th street and the
j-th avenue.

Output
Print the only integer a — the cost of the dinner for Jack and Emma.

Sample test(s)

Input
3 4
4 1 3 5
2 2 2 2
5 4 5 1


Output
2


Input
3 3
1 2 3
2 3 1
3 1 2


Output
1

分析:该题讲的是Jack 和 Emma出去吃饭,jack想便宜,Emma想吃贵的,综合两个,由Emma选择去那条横街道,jack决定去竖街道。
综上,可以说是找每行的最小值存起来,然后找出这些最小值的最大值。

代码实现:
#include<iostream>
#include<cstdio>
#define X 0x7fffffff
using namespace std;
int main()
{
    int n,m;
    __int64 a,s1,s2;
    while(scanf("%d %d",&n,&m) != EOF)
    {
        int i,j;
        __int64 a;
        s1 = -X;
        for(i = 0;i < n;i++)
        {
            s2 = X;
            for(j = 0;j < m;j++)
            {
                scanf("%I64d",&a);
                if(s2 > a)
                    s2 = a;
            }
            s1 = max(s1,s2);
        }
        printf("%I64d\n",s1);
    }
    return 0;
}

总结:该题考察的最先是读题能力,然后结合他们两人的特点选出最佳方案。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息