Submission #370467

#TimeUsernameProblemLanguageResultExecution timeMemory
370467amano_hinaDetecting Molecules (IOI16_molecules)C++14
100 / 100
59 ms5612 KiB
#include<bits/stdc++.h>
using namespace std;
std::vector<int> find_subset(int l, int u, std::vector<int> w) {
    pair<int,int> p[200005];
    long long  n=w.size();
    for(int i=0;i<n;i++)
    {
        p[i].first=w[i];
        p[i].second=i;
    }
    sort(p,p+n);
    vector<int> ans;
    long long mn=0,mx=0,cnt;
    bool d=1;
    for(long long i=0;i<n;i++)
    {
        mn=mn+p[i].first;
        mx=mx+p[n-1-i].first;
        if(mn>=l&&mn<=u)
        {
            for(long long j=0;j<=i;j++)
            {
                ans.push_back(p[j].second);
            }
            break;
        }
        else if(mx>=l&&mx<=u)
        {
            for(long long j=n-1;j>=n-1-i;j--)
            {
                ans.push_back(p[j].second);
            }
            break;
        }
        else if(mn<l&&u<mx)
        {
            //cout<<i<<'\n';
            cnt=mn;
            for(long long j=i;j>=0;j--)
            {
                cnt=cnt-p[j].first+p[n-1-(i-j)].first;
                if(cnt>=l&&cnt<=u)
                {
                    for(long long k=0;k<j;k++)
                    {
                        ans.push_back(p[k].second);
                    }
                    for(long long k=n-1;k>=n-1-(i-j);k--)
                    {
                        ans.push_back(p[k].second);
                    }
                    break;

                }
            }
            break;
        }
    }
    return ans;


}
/*int main()
{
    int l,u,x;
    cin>>l>>u;
    vector<int> w;
    vector<int> out;
    while(cin>>x)
    {
        w.push_back(x);
    }
    out=find_subset(l, u, w);
    for(int i=0;i<out.size();i++)
    {
        cout<<out[i]<<" ";
    }

}*/

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:14:10: warning: unused variable 'd' [-Wunused-variable]
   14 |     bool d=1;
      |          ^
#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...