Codeforces Round #253 DIV1 C greedy_html/css_WEB-ITnose
http://codeforces.com/contest/442/problem/C
The meaning of the question is very easy. Basically, there must be some pits. Look at the question cases, starting from the third to the third If you look at the two cases without concavity, if you write a few more and draw more, you will find that all but the two largest numbers can be obtained, and then there is the concave case. The concave case is definitely the only one. , remove the middle number to get a value, but what should I do if there is a combination of concave and convex? Let me guess, solve the concave ones one by one first, generate a sequence without concavities and then process it, and then just test the first case , found that the answer was correct, so I greedily typed one
For concave cases, you can use the stack. After processing, for non-concave cases, you can directly sort everything except the largest two numbers.
#include<iostream>#include<cstdio>#include<list>#include<algorithm>#include<cstring>#include<string>#include<queue>#include<stack>#include<map>#include<vector>#include<cmath>#include<memory.h>#include<set>#define ll long long#define eps 1e-8const int inf = 0xfffffff;const ll INF = 1ll<<61;using namespace std;//vector<pair<int,int> > G;//typedef pair<int,int > P;//vector<pair<int,int> > ::iterator iter;////map<ll,int >mp;//map<ll,int >::iterator p;int n;int num[1000000 + 5];stack<int > s;ll ans; void init() { memset(num,0,sizeof(num)); while(!s.empty())s.pop(); ans = 0ll;}bool input() { while(scanf("%d",&n) == 1) { for(int i=0;i<n;i++) scanf("%d",&num[i]); return false; } return true;}void cal() { bool flag = false; s.push(num[0]); for(int i=1;i<n;i++) { if(num[i] <= s.top()) {s.push(num[i]);flag = true;continue;} if(num[i] >= s.top() && flag) { s.pop(); ans += min(num[i],s.top()); if(num[i] <= s.top())flag = true; else { while(true) { int tmp = s.top(); s.pop(); if(s.empty()) { s.push(tmp); break; } if(tmp > s.top() || num[i] < tmp) { s.push(tmp); break; } if(num[i] >= tmp)ans += min(s.top(),num[i]); } } if(num[i] <= s.top())flag = true; else flag = false; s.push(num[i]); continue; } s.push(num[i]); } memset(num,0,sizeof(num)); int cnt = 0; while(!s.empty()) { num[cnt++] = s.top(); s.pop(); } sort(num,num+cnt); for(int i=0;i<cnt-2;i++) ans += num[i];}void output() { printf("%I64d\n",ans);}int main() { while(true) { init(); if(input())return 0; cal(); output(); } }

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



The article discusses the HTML <datalist> element, which enhances forms by providing autocomplete suggestions, improving user experience and reducing errors.Character count: 159

The article discusses the HTML <progress> element, its purpose, styling, and differences from the <meter> element. The main focus is on using <progress> for task completion and <meter> for stati

The article discusses the HTML <meter> element, used for displaying scalar or fractional values within a range, and its common applications in web development. It differentiates <meter> from <progress> and ex

The article discusses the viewport meta tag, essential for responsive web design on mobile devices. It explains how proper use ensures optimal content scaling and user interaction, while misuse can lead to design and accessibility issues.

The article discusses the <iframe> tag's purpose in embedding external content into webpages, its common uses, security risks, and alternatives like object tags and APIs.

This article explains the HTML5 <time> element for semantic date/time representation. It emphasizes the importance of the datetime attribute for machine readability (ISO 8601 format) alongside human-readable text, boosting accessibilit

Article discusses best practices for ensuring HTML5 cross-browser compatibility, focusing on feature detection, progressive enhancement, and testing methods.

The article discusses using HTML5 form validation attributes like required, pattern, min, max, and length limits to validate user input directly in the browser.
