AOJ プログラミング応用 トピック#3

#トピック#3
##[ ITP2_3_A](https://onlinejudge.u-aizu.ac.jp/courses/lesson/8/ITP2/3/ITP2_3_A)
###Min-Max

```C++:C++
#include<iostream>
#include<vector>
#include<algorithm>
#include<iomanip>
#include<utility>
#include<iomanip>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<cstdio>
#include<list>

#define rep(i,n) for(int i=0; i<(n); ++i)
#define pai 3.1415926535897932384
#define NUM_MAX 2e18
#define NUM_MIN -1e9

using namespace std;
using ll =long long;
using P = pair<int,int>;

int main(int argc, const char * argv[]) {
    int a, b, c;
    cin >> a >> b >> c;
    
    cout << min(a, min(b, c)) << ' ' << max(a, max(b, c)) << endl;
    
    return 0;
}
```

##[ITP2_3_B](https://onlinejudge.u-aizu.ac.jp/courses/lesson/8/ITP2/3/ITP2_3_B)
###Min-Max Element

min_element, max_elementを初めて使った。

```C++:C++
#include<iostream>
#include<vector>
#include<algorithm>
#include<iomanip>
#include<utility>
#include<iomanip>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<cstdio>
#include<list>

#define rep(i,n) for(int i=0; i<(n); ++i)
#define pai 3.1415926535897932384
#define NUM_MAX 2e18
#define NUM_MIN -1e9

using namespace std;
using ll =long long;
using P = pair<int,int>;
 
int main(int argc, const char * argv[]) {
    int N, Q;
    cin >> N;
    
    vector<int> A(N);
    rep(i, N){
        cin >> A[i];
    }
    
    cin >> Q;
    rep(i, Q){
        int cmd, b, e;
        cin >> cmd >> b >> e;
        
        if(cmd==0) cout << *min_element(A.begin()+b, A.begin()+e) << endl;
        else cout << *max_element(A.begin()+b, A.begin()+e) << endl;
    }
    
    return 0;
}
```

##[ITP2_3_C](https://onlinejudge.u-aizu.ac.jp/courses/lesson/8/ITP2/3/ITP2_3_C)
###Count

countを初めて使った。

```C++:C++
#include<iostream>
#include<vector>
#include<algorithm>
#include<iomanip>
#include<utility>
#include<iomanip>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<cstdio>
#include<list>

#define rep(i,n) for(int i=0; i<(n); ++i)
#define pai 3.1415926535897932384
#define NUM_MAX 2e18
#define NUM_MIN -1e9

using namespace std;
using ll =long long;
using P = pair<int,int>;
 
int main(int argc, const char * argv[]) {
    int N, Q;
    cin >> N;
    
    vector<int> A(N);
    rep(i, N){
        cin >> A[i];
    }
    
    cin >> Q;
    rep(i, Q){
        int b, e, k;
        cin >> b >> e >> k;
        cout << count(A.begin()+b, A.begin()+e, k) << endl;
    }
    
    return 0;
}
```

##[ITP2_3_D](https://onlinejudge.u-aizu.ac.jp/courses/lesson/8/ITP2/3/ITP2_3_D)
###Lexicographical Comparison

vector便利。

```C++:C++
#include<iostream>
#include<vector>
#include<algorithm>
#include<iomanip>
#include<utility>
#include<iomanip>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<cstdio>
#include<list>

#define rep(i,n) for(int i=0; i<(n); ++i)
#define pai 3.1415926535897932384
#define NUM_MAX 2e18
#define NUM_MIN -1e9

using namespace std;
using ll =long long;
using P = pair<int,int>;
 
int main(int argc, const char * argv[]) {
    int N, M;
    cin >> N;
    
    vector<int> A(N);
    rep(i, N){
        cin >> A[i];
    }
    
    cin >> M;
    vector<int> B(M);
    rep(i, M){
        cin >> B[i];
    }

    if(lexicographical_compare(A.begin(), A.end(), B.begin(), B.end())) cout << 1 << endl;
    else cout << 0 << endl;
    
    return 0;
}
```

知らないライブラリを知る事ができました。