全部评论
烽火台。。。我的代码很蠢
int main(){
int n;
while (cin >> n){
vector<int> heights(n, 0);
for (int i = 0; i < n; ++i){
cin >> heights[i];
}
int cnt = n;
for (int i = 0; i < n; ++i){
heights.push_back(heights[i]);
}
int cnt2 = 0;
set<pair<int, int>> twins;
for (int i = 0; i < n; ++i){
for (int j = i + 2; j < i + n - 1; ++j){
bool seen = true;
for (int k = i + 1; k < j; ++k){
if (heights[k] > heights[i] || heights[k] >
heights[j]){
seen = false;
break;
}
}
if (seen){
int ii = i % n, jj = j % n;
if (ii > jj){
twins.insert({ ii, jj });
}
else{
twins.insert({ jj, ii });
}
seen = false;
}
}
}
for (int i = 2 * n - 1; i >= n; --i){
for (int j = i - 2; j > i - (n - 1); --j){
bool seen = true;
for (int k = i - 1; k > j; --k){
if (heights[k] > heights[i] || heights[k] >
heights[j]){
seen = false;
break;
}
}
if (seen){
int ii = i % n, jj = j % n;
if (ii > jj){
twins.insert({ ii, jj });
}
else{
twins.insert({ jj, ii });
}
seen = false;
}
}
}
cnt = cnt + twins.size();
cout << cnt << endl;
}
}
测试开发的编程题不算难。
我碰到的是烽火台和采购单。。。烽火台耗了我30分钟。。。
ac两道。。
我AC了两道。。。
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享