CSES - NOI 2019 - Results
Submission details
Task:Thieves and Prisons
Sender:Ingólfur Orri
Submission time:2019-03-06 15:56:21 +0200
Language:C++
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:21:50: error: no matching function for call to 'find(std::vector<int>::iterator, std::vector<int>::iterator, int&)'
             if(find(cap.begin(), cap.end(), fangi) != cap.end()) {
                                                  ^
In file included from /usr/include/c++/7/bits/locale_facets.h:48:0,
                 from /usr/include/c++/7/bits/basic_ios.h:37,
                 from /usr/include/c++/7/ios:44,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from input/code.cpp:1:
/usr/include/c++/7/bits/streambuf_iterator.h:369:5: note: candidate: template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT> >::__type std::find(std::istreambuf_iterator<_CharT>, std::istreambuf_iterator<_CharT>, const _CharT2&)
     find(istreambuf_iterator<_CharT> __first,
     ^~~~
/usr/include/c++/7/bits/stre...

Code

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n, k, m;
    cin >> n  >> k >> m;
    vector<int> fang;
    vector<int> cap;
    int pri = 0;
    bool top = false;
    
    for(int i = 0; i < m; i++) {
        string act;
        int fangi;
        cin >> act >> fangi;
        if(act == "C") {
            
            if(pri == n) top = true;
            
            if(find(cap.begin(), cap.end(), fangi) != cap.end()) {
                cout << "IMPOSSIBLE" << endl;
                return 0;
            }
            
            else  cap.push_back(fangi);
            
            if(top) pri--;
            else pri++;
            
            if(pri == 1) top = false;
            
            fang.push_back(pri);
           
        }
        else if(act == "O") {
            
            if(pri == 0) {
                cout << "IMPOSSIBLE" << endl;
                return 0;
            }
            
            for(unsigned int j = 0; j < cap.size(); j++) {
                if(fangi == cap[j]) {
                    cout << "IMPOSSIBLE" << endl;
                    return 0;
                }
            }
            cap.pop_back();
            fang.push_back(pri);
            pri--;
            if(pri < 0) pri = 0;
        }
    }
    for(unsigned int i = 0; i < fang.size(); i++) {
        cout << fang[i] << " ";
    }
    cout << endl;
    return 0;
}