Submission #990176

#TimeUsernameProblemLanguageResultExecution timeMemory
990176hasan2006Detecting Molecules (IOI16_molecules)C++17
100 / 100
37 ms6316 KiB
#include "molecules.h"
#include <bits/stdc++.h>

using namespace std;

#define TL ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define rall(s) s.rbegin(),s.rend()
#define all(s) s.begin(),s.end()
#define pb push_back
#define se second
#define fi first
#define ll long long
#define ld long double
#define YES cout<<"YES\n"
#define Yes cout<<"Yes\n"
#define yes cout<<"yes\n"
#define NO cout<<"NO\n"
#define No cout<<"No\n"
#define no cout<<"no\n"


const int N = 5e5 + 9 , mod = 1e9 + 7;
ll a[N] , b[N] , dp[N] , c[N] , d[N];

std::vector<int> find_subset(int l, int u, vector<int>w){
    vector<pair<int,int>>v;
    for(int i = 0; i < w.size(); i++)
        v.pb({w[i] , i});
    sort(all(v));
    vector<int>ans;
    ll r =  -1 , sum = 0;
    for(int i = 0; i < v.size(); i++){
        while(r + 1 < v.size() && u - l >= v[r + 1].fi - v[i].fi && sum < l)
            r++ , sum += v[r].fi;
        if(sum >= l && sum <= u){
            for(int j = i; j <= r; j++)
                ans.pb(v[j].se);
            break;
        }
        sum -= v[i].fi;
    }
    sort(all(ans));
    return ans;
}
// Author : حسن

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:27:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |     for(int i = 0; i < w.size(); i++)
      |                    ~~^~~~~~~~~~
molecules.cpp:32:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |     for(int i = 0; i < v.size(); i++){
      |                    ~~^~~~~~~~~~
molecules.cpp:33:21: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |         while(r + 1 < v.size() && u - l >= v[r + 1].fi - v[i].fi && sum < l)
      |               ~~~~~~^~~~~~~~~~
#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...