QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#528958#1350. Mango36champCompile Error//C++202.8kb2024-08-24 04:53:412024-08-24 04:53:41

Judging History

你现在查看的是最新测评结果

  • [2024-08-24 04:53:41]
  • 评测
  • [2024-08-24 04:53:41]
  • 提交

answer

#include <bits/stdc++.h>
#define ll long long
#define pb push_back

using namespace std;

char query1(ll i, ll n, string &a, vector<string> &str)
{
    if(str[0].size() != 0 && i <= n * str[0].size())
    {
        i--;
        i %= str[0].size();
        i++;

        return str[0][i - 1];
    }

    i -= n * str[0].size();

    if(i <= a.size()) return a[i - 1];

    i -= a.size();

    i--;
    i %= str[1].size();
    i++;

    return str[1][i - 1];
}

void query(ll l, ll r, ll n, string &a, vector<string> &str, vector<ll> &len)
{
    //cout << "Q " << l << " " << r << " " << n << "\n";
    if(l > r || l < 1 || r < 1) return;

    if(n == 0)
    {
        for(ll i = l; i <= r; i++) cout << a[i - 1];
        return;
    }

    if(n > len.size())
    {
        for(ll i = l; i <= min((n - len.size()) * str[0].size(), r); i++)
        {
            cout << str[0][(i - 1) % str[0].size()];
        }

        return query(max(1LL, l - (n - len.size()) * str[0].size()), r - (n - len.size()) * str[0].size(), len.size(), a, str, len);
    }

    for(int j = 0; j <  str.size(); j++)
    {
        if(l <=  str[j].size())
        {
            //cout << "! " << j << " " << l << " " << str[j].size() << " " << min(l +  str[j].size() - 1, r) << "\n";
            for(ll i = l; i <= min(str[j].size(), r); i++) cout << str[j][i - 1];
        }
        l = max(1LL, l -  str[j].size());
        r -=  str[j].size();

        if(r <= 0) return;

        if(l <= len[n - 1]) query(l, min(len[n - 1], r), n - 1, a, str, len);

        l = max(1LL, l - len[n - 1]);
        r -= len[n - 1];

        if(r <= 0) return;
    }
}

int main()
{
    ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);

	string a, s;
	cin >> a >> s;

    ll n, q;
    cin >> n >> q;

    ll cnt = 0;
    for(char c: s) if(c == '$') cnt++;

    vector<string> str;
    string now;
    for(char c: s)
    {
        if(c == '$')
        {
            str.pb(now);
            now = "";
            continue;
        }

        now += c;
    }
    str.pb(now);

    /*for(string x: str) cout << x << " ";
    cout << "\n";

    for(string x: str) cout << x.size() << " ";
    cout << "\n";*/

    ll l = a.size();
    vector<ll> len;
    for(int i=0; i<n; i++)
    {
        len.pb(l);

        if(l - 1 > ((1LL<<60) / cnt)) break;
        l = (l - 1) * cnt + s.size();
    }

    /*for(ll l: len) cout << l << " ";
    cout << "\n";*/

    while(q-->0)
    {
        ll l, r;
        cin >> l >> r;

        if(cnt == 1) for(ll i=l; i<=r; i++) cout << query1(i, n, a, str);
        else query(l, r, n, a, str, len);
        cout << "\n";
    }
}
/*
It's_a_cat,_not_a_mango
It's_"$",_not_"$"
1 6
1 20
18 35
49 61
29 40
41 50
5 5
*/

详细

answer.code: In function ‘void query(long long int, long long int, long long int, std::string&, std::vector<std::__cxx11::basic_string<char> >&, std::vector<long long int>&)’:
answer.code:44:31: error: no matching function for call to ‘min(long long unsigned int, long long int&)’
   44 |         for(ll i = l; i <= min((n - len.size()) * str[0].size(), r); i++)
      |                            ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/algorithm:60,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51,
                 from answer.code:1:
/usr/include/c++/13/bits/stl_algobase.h:233:5: note: candidate: ‘template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)’
  233 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/13/bits/stl_algobase.h:233:5: note:   template argument deduction/substitution failed:
answer.code:44:31: note:   deduced conflicting types for parameter ‘const _Tp’ (‘long long unsigned int’ and ‘long long int’)
   44 |         for(ll i = l; i <= min((n - len.size()) * str[0].size(), r); i++)
      |                            ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algobase.h:281:5: note: candidate: ‘template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)’
  281 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/13/bits/stl_algobase.h:281:5: note:   template argument deduction/substitution failed:
answer.code:44:31: note:   deduced conflicting types for parameter ‘const _Tp’ (‘long long unsigned int’ and ‘long long int’)
   44 |         for(ll i = l; i <= min((n - len.size()) * str[0].size(), r); i++)
      |                            ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/algorithm:61:
/usr/include/c++/13/bits/stl_algo.h:5775:5: note: candidate: ‘template<class _Tp> constexpr _Tp std::min(initializer_list<_Tp>)’
 5775 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/13/bits/stl_algo.h:5775:5: note:   template argument deduction/substitution failed:
answer.code:44:31: note:   mismatched types ‘std::initializer_list<_Tp>’ and ‘long long unsigned int’
   44 |         for(ll i = l; i <= min((n - len.size()) * str[0].size(), r); i++)
      |                            ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:5785:5: note: candidate: ‘template<class _Tp, class _Compare> constexpr _Tp std::min(initializer_list<_Tp>, _Compare)’
 5785 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/13/bits/stl_algo.h:5785:5: note:   template argument deduction/substitution failed:
answer.code:44:31: note:   mismatched types ‘std::initializer_list<_Tp>’ and ‘long long unsigned int’
   44 |         for(ll i = l; i <= min((n - len.size()) * str[0].size(), r); i++)
      |                            ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
answer.code:49:25: error: no matching function for call to ‘max(long long int, long long unsigned int)’
   49 |         return query(max(1LL, l - (n - len.size()) * str[0].size()), r - (n - len.size()) * str[0].size(), len.size(), a, str, len);
      |                      ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algobase.h:257:5: note: candidate: ‘template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)’
  257 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/13/bits/stl_algobase.h:257:5: note:   template argument deduction/substitution failed:
answer.code:49:25: note:   deduced conflicting types for parameter ‘const _Tp’ (‘long long int’ and ‘long long unsigned int’)
   49 |         return query(max(1LL, l - (n - len.size()) * str[0].size()), r - (n - len.size()) * str[0].size(), len.size(), a, str, len);
      |                      ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algobase.h:303:5: note: candidate: ‘template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)’
  303 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/13/bits/stl_algobase.h:303:5: note:   template argument deduction/substitution failed:
answer.code:49:25: note:   deduced conflicting types for parameter ‘const _Tp’ (‘long long int’ and ‘long long unsigned int’)
   49 |         return query(max(1LL, l - (n - len.size()) * str[0].size()), r - (n - len.size()) * str[0].size(), len.size(), a, str, len);
      |                      ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:5795:5: note: candidate: ‘template<class _Tp> constexpr _Tp std::max(initializer_list<_Tp>)’
 5795 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/13/bits/stl_algo.h:5795:5: note:   template argument deduction/substitution failed:
answer.code:...