Submission #761343

#TimeUsernameProblemLanguageResultExecution timeMemory
761343TrumlingDetecting Molecules (IOI16_molecules)C++14
0 / 100
1 ms340 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std; 

typedef long long ll;
#define pb push_back
#define F first
#define S second
#define enter cout<<'\n';
#define INF 99999999999999999
#define MOD 1000000007
#define all(x) x.begin(),x.end()

vector<int> find_subset(int l, int u, vector<int> W) 
{
ll n=W.size();
vector<pair<int,int>>w;
for(int  i=0;i<n;i++)
w[i]={W[i],i};

sort(all(w));
vector<int>pre(n);


for(int  i=0;i<w.size();i++)
pre[i]=((i==0)?0:pre[i-1]) +  w[i].F;

ll L=0,i=0;
bool tf=1;

for(i=0;i<n;i++)
{
    ll sum=pre[i]-((L==0)?0:pre[L-1]);

    while(sum>u && L<=i)
    {
        L++;
        sum=pre[i]-pre[L-1];
    }

    if(L>i)
    break;
    if(sum>=l && sum<=u)
        break;

}

vector<int>ans;
if((pre[i]-((L==0)?0:pre[L-1]))<=u && (pre[i]-((L==0)?0:pre[L-1]))>=l)
for(int j=L;j<=i;j++)
ans.pb(w[j].S);

return ans;

}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:25:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 | for(int  i=0;i<w.size();i++)
      |              ~^~~~~~~~~
molecules.cpp:29:6: warning: unused variable 'tf' [-Wunused-variable]
   29 | bool tf=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...