코드포스(CodeForce)

Codeforces Round #496 (Div. 3)

cepiloth 2018. 7. 10. 09:57
반응형


1. 문제

http://codeforces.com/contest/1005/problem/A


2. 알고리즘

키워드 - 구현

접근법 - 입력되는 정수 중에 가장 큰 정수를 vector 리스트에 삽입, 이전값보다 작을때는 clear 이전 값과 같을 때도 리스트에 삽입


3. 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
#include <sstream>
#include <string>
#include <algorithm>
#include <functional>
#include <vector>
#include <list>
#include <queue>
#include <deque>
#include <map>
#include <set>
#include <stack>
#include <cstring>
 
using namespace std;
 
#define MAX_SIZE 100
#define INF 0x7fffffff
#define CENDL "\n"
#define ll long long
 
/*
* @memory  - 2056 kb
* @time    - 0 ms
*/
 
int main() {
 
    cin.tie(0);
    std::ios::sync_with_stdio(false);
 
    int n; cin >> n;
 
    vector<int> arr(n+10);
    for (int i=0; i<n; i++) {
        cin >> arr[i];
    }
 
    vector<int> brr;
    int prev = arr[0];
    for (int i=1; i<=n; i++) {
 
        if (prev < arr[i]) {
            prev = arr[i];
        } else if(prev > arr[i] || prev > arr[n-1]) {
            brr.push_back(prev);
            prev = 1;
        } else if(prev == arr[i]) {
            brr.push_back(arr[i]);
        }
    }
 
    cout << brr.size() <<CENDL;
    for(auto a : brr) {
        cout << a << " ";
    }
    return 0;
}
 
cs



반응형