5132. 奶牛照相 – AcWing题库
约翰的农场有n头奶牛,编号1∼n。
其中,第i头奶牛的宽度为wi,高度为hi,
有一天,它们聚餐后决定拍照留念。
关于拍照的描述如下:
- 它们一共服务器托管网拍了n张照片,其中第i张照片由第i头奶牛给其它所有奶牛拍摄,即照片中包含除了奶牛i以外的所有奶牛。
- 在拍照时,所有被拍摄的奶牛站成一排,拍出的照片呈矩形。
- 每张照片的尺寸大小为WH,其中W为照片中所有奶牛的宽度之和,H为照片中最高的奶牛的高度。
请你计算并输出每张照片的面积(WH的值)。
输入格式
第一行包含整数n,表示共有n头奶牛。
接下来n行,其中第i行包含两个整数wi,hi,表示第i头奶牛的宽度和高度。
输出格式
输出共一行,n个整数,其中第i个整数表示第i张照片的面积。
注意,第i张照片包含除了奶牛i以外的所有奶牛。
数据范围
前33个测试点满足2≤n≤3。
所有测试点满足2≤n≤2105,1≤wi≤10,1≤hi≤1000。输入样例1:
3 1 10 5 5 10 1
输出样例1:
75 110 60
输入样例2:
3 2 1 1 2 2 1
输出样例2:
6 4 6
主要是处理出最大值 max1 和第二大值 max2,然后遍历,当前高度不等于 max1 的时候,就是宽度成 max1,高高度等于 max1 的时候,就是宽度成 max2
AC code:
#include
using namespace std;
int h[200010];
int w[200010];
struct s {
int w, h, x;
} arr[200010];
int n, ww = -1, hh = -1;
int main() {
cin >> n;
for (int服务器托管网 i = 1; i > arr[i].w;
cin >> arr[i].h;
arr[i].x = i;
w[i] = w[i - 1] + arr[i].w;
h[i] = arr[i].h;
}
sort(h + 1, 1 + h + n);
for (int i = 1; i
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net