这题纯纯一个数组遍历。
如果你看不懂英文的话,那么atcoder better这个插件可以帮助你,所有洛谷&atcoder&codeforces的插件都在这里:https://www.luogu.com/article/p2ri0gub
咳咳……跑题了跑题了!下面就是题解:
-
输入。这一步很简单,定义变量 n 和数组 H 就可以输入。因为数据比较小,所以不需要 long long。
-
遍历:注意注意,下面坑就来了!我个人感觉很多人应该都栽在了这里。因为它有一个坑点就在于:你从左往右遍历的时候,只要遍历到比第一栋楼(也就是题目中的 H_1)要高的第一栋楼,那就直接输出这栋楼的编号就行了,不需要继续往下遍历了。否则,我们的 Sample Output 3 可就过不了了。不需要新定义变量,我们可以干一件事:
直接遍历!
是的,你没看错,直接遍历!
只要我们一个个从 H_2 开始遍历,遍历到比 H_1 要高的那栋楼(H_i),直接输出 i 就行了。
但是——注意注意,又有坑了!如果没有比 H_1 要高的楼(也就是 H_1 是最高的那栋楼时),按照题目要求,我们需要输出 -1!
#include<bits/stdc++.h>
using namespace std;
int main()
{
//输入。
int n;
cin>>n;
int h[n+5];
for(int i=1;i<=n;i++)
{
cin>>h[i];
}
//遍历。
for(int i=2;i<=n;i++)
{
if(h[1]<h[i])//如果这栋楼比H_1要高,输出,程序结束。
{
cout<<i;
return 0;
}
}
//如果H_1是最高的那栋楼,输出-1。
cout<<-1;
return 0;
}
标签:插件,遍历,题目,int,题解,abc,353,跑题
From: https://www.cnblogs.com/liuxingmiaoYYDS/p/18188213/abc-353-a-tj