/ SeriousOJ /

Record Detail

Compile Error

foo.cc: In function 'int main()':
foo.cc:29:27: error: no matching function for call to 'find(std::vector<int>::iterator, std::vector<int>::iterator, int&)'
   29 |             auto it = find(list.begin(), list.end(), num);
      |                       ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/bits/locale_facets.h:48,
                 from /usr/include/c++/13/bits/basic_ios.h:37,
                 from /usr/include/c++/13/ios:46,
                 from /usr/include/c++/13/ostream:40,
                 from /usr/include/c++/13/iostream:41,
                 from foo.cc:1:
/usr/include/c++/13/bits/streambuf_iterator.h:435:5: note: candidate: 'template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT> >::__type std::find(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>, const _CharT2&)'
  435 |     find(istreambuf_iterator<_CharT> __first,
      |     ^~~~
/usr/include/c++/13/bits/streambuf_iterator.h:435:5: note:   template argument deduction/substitution failed:
foo.cc:29:27: note:   '__gnu_cxx::__normal_iterator<int*, std::vector<int> >' is not derived from 'std::istreambuf_iterator<_CharT>'
   29 |             auto it = find(list.begin(), list.end(), num);
      |                       ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Code

#include <iostream>
#include <vector>

using namespace std;


int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.precision(10);
    cout << fixed;

    int t;
    cin >> t;

    while (t--) {
        int n;
        cin >> n;
        bool isPermutation = true;

        vector<int> list(n);
        for (int i = 0; i < n; ++i) {
            list[i] = i + 1;
        }
        for (int i = 0; i < n; ++i) {
            int num;
            cin >> num;

            auto it = find(list.begin(), list.end(), num);
            if (it == list.end()) {
                cout << "NO" << endl;
                isPermutation = false;
                while (i++ < n - 1) cin >> num;
                break; 
            } else {
                list.erase(it); 
            }
        }

        if (isPermutation && list.empty()) {
            cout << "YES" << endl;
        } else if (isPermutation) {
            cout << "NO" << endl;
        }
    }


    return 0;
}

Information

Submit By
Type
Submission
Problem
P1055 Array Permutation
Contest
Brain Booster #3
Language
C++20 (G++ 13.2.0)
Submit At
2024-05-06 15:39:55
Judged At
2024-10-03 13:51:43
Judged By
Score
0
Total Time
0ms
Peak Memory
0 Bytes