题目描述
输入
输出
数据范围
Input
Output
Hint
给出一个无限的二维网格,左下角的单元格被称为(1,1)。 所有单元格最初都表示为零值。我们来玩个游戏。 游戏由N个步骤组成,其中每个步骤都有两个整数a和b。 满足1≤u≤a和1≤v≤b的坐标(u,v)中的每个单元的值增加1。 在N个这样的步骤之后,如果X是所有单元格中最大的数,您可以计算出网格中X的数量吗?
第一行输入包含一个整数N。 接下来N行,每行包含由单个空格分隔的两个整数a和b。
输出一个整数,表示X的数量。
1 ≤ N ≤ 100 1 ≤ a ≤ 10^6 1 ≤ b ≤ 10^6
3 2 3 3 7 4 1
2
例如样例1中: 假设这个网格是4*7的。 还没有进行操作时: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 第一次操作后: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 第二次操作后: 0 0 0 0 0 0 0 1 1 1 1 1 1 1 2 2 2 1 1 1 1 2 2 2 1 1 1 1 最后一次操作后网格是这样的: 1 0 0 0 0 0 0 2 1 1 1 1 1 1 3 2 2 1 1 1 1 3 2 2 1 1 1 1网格中最大的数为3, 3的数量为2,所以输出2。
分析:找到输入的多组数据中a,b的最小值min,min1后,两数相乘;
代码:
#include<stdio.h> int main() { int n,i; long long a[100],b[100],min,min1; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%lld%lld",&a[i],&b[i]); min=a[0],min1=b[0]; if(min>a[i]) min=a[i]; if(min1>b[i]) min1=b[i]; } printf("%lld",min*min1); return 0; }