Submission #591498

#TimeUsernameProblemLanguageResultExecution timeMemory
591498andrei_boacaCalvinball championship (CEOI15_teams)C++14
20 / 100
1097 ms1372 KiB
#include <bits/stdc++.h>

using namespace std;
int nr=0;
vector<int> a;
multiset<int> s;
int v[10005];
int n;
void dfs()
{
    if(a.size()==n)
    {
        nr++;
        bool ok=1;
        for(int i=1;i<=n;i++)
            if(v[i]!=a[i-1])
                ok=0;
        if(ok)
        {
            cout<<nr;
            exit(0);
        }
        int val=a.back();
        s.erase(s.find(val));
        a.pop_back();
        return;
    }
    int maxi=0;
    if(s.size())
        maxi=*prev(s.end());
    for(int i=1;i<=maxi+1;i++)
    {
        s.insert(i);
        a.push_back(i);
        dfs();
    }
    int val=a.back();
    s.erase(s.find(val));
    a.pop_back();
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>v[i];
    dfs();
    return 0;
}

Compilation message (stderr)

teams.cpp: In function 'void dfs()':
teams.cpp:11:16: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   11 |     if(a.size()==n)
      |        ~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...