Submission #1121767

#TimeUsernameProblemLanguageResultExecution timeMemory
1121767vjudge1Ice Hockey World Championship (CEOI15_bobek)C++17
10 / 100
297 ms23212 KiB
    #include <bits/stdc++.h>
    using namespace std;
    # define int long long
    const int maxn = 1e6 + 5;

    void solve()
    {
        int n, k, cnt = 0;
        cin >> n >> k;
        vector < int > a(n);
        vector < int > pr1;
        vector < int > pr2;
        vector < int > p;
        vector < int > q;
        for(int i = 0; i < n; i++)
            cin >> a[i];
        for(int i = 0; i < n / 2 + (n % 2); i++)
            pr1.push_back(a[i]);
        for(int i = n / 2 + (n % 2); i < n; i++)
            pr2.push_back(a[i]);
        for(int i = 1; i < pow(2, pr1.size()); i++)
        {
            int ans = 0;
            for(int j = 0; j < pr1.size(); j++)
            {

                if(i & (1 << j))
                {
                    ans += pr1[j];
                }
            }
            p.push_back(ans);
        }
        for(int i = 1; i < pow(2, pr2.size()); i++)
        {
            int ans = 0;
            for(int j = 0; j < pr2.size(); j++)
            {
                if(i & (1 << j))
                    ans += pr2[j];
            }
            q.push_back(ans);
        }
        sort(q.begin(), q.end());
        for(int i = 0; i < p.size(); i++)
        {
            if(p[i] <= k)
                cnt++;
        }
        for(int i = 0; i < q.size(); i++)
        {
            if(q[i] <= k)
                cnt++;
        }
        for(int i = 0; i < p.size(); i++)
        {
            int chk = k - p[i];
            int l = 0, r = q.size() - 1;
            if(p[i] > chk)  continue;
            while(r > l)
            {
                int mid = (l + r) / 2;
                if(q[mid] >= chk)
                    r = mid - 1;
                else
                    l = mid + 1;
            }
            cnt += (l + 1);
        }
        cout << cnt + 1<< endl;
    }

    signed main()
    {
        ios_base::sync_with_stdio(false);
        cin.tie(NULL);
        int tt = 1;
        // cin >> tt;
        while(tt--)
            solve();
    }

Compilation message (stderr)

bobek.cpp: In function 'void solve()':
bobek.cpp:24:30: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |             for(int j = 0; j < pr1.size(); j++)
      |                            ~~^~~~~~~~~~~~
bobek.cpp:37:30: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |             for(int j = 0; j < pr2.size(); j++)
      |                            ~~^~~~~~~~~~~~
bobek.cpp:45:26: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |         for(int i = 0; i < p.size(); i++)
      |                        ~~^~~~~~~~~~
bobek.cpp:50:26: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |         for(int i = 0; i < q.size(); i++)
      |                        ~~^~~~~~~~~~
bobek.cpp:55:26: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |         for(int i = 0; i < p.size(); i++)
      |                        ~~^~~~~~~~~~
#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...