Submission #1249552

#TimeUsernameProblemLanguageResultExecution timeMemory
1249552ammakaDetecting Molecules (IOI16_molecules)C++20
0 / 100
15 ms3048 KiB
//#include <GOD>
//kole shahr khakestary , bala sar man ranginkamon
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pll;
#define pb push_back
#define len length	
#define FAST_IO ios_base::sync_with_stdio(false); cin.tie(0);cout.tie(0);
#define freo freopen("guard.out","w",stdout)
#define frei freopen("guard.in","r",stdin)

const ll inf=1e18+10;
const ll mod=1e9+7;
const ll maxn=(2e5)+10,maxm=1e5+10,sq=310+10,maxa=(1<<maxn),mlg=32;


int ss[maxn],ps[maxn];

vector<int> find_subset(int l, int u, vector<int> w){
    // frei;
    // freo;
	// FAST_IO;
    int mn=inf;
    int n=w.size();
    vector <int> ans;
    ans.clear();
    for(int i=1;i<=n;i++){
        ps[i]=ps[i-1]+w[i-1];
        mn=min(mn,w[i-1]);
    }
    for(int i=n;i>=1;i--){
        ss[i]=ss[i+1]+ss[i-1];
    }
    if(mn<=u&&ps[n]>=l){
        if(mn>=l){
            ans.pb(mn);
            return ans;
        }else{
            for(int k=1;k<=n;k++){
                if(ps[k]>=l&&ps[k]<=u){
                    for(int i=0;i<k;i++){
                        ans.pb(i);
                    }
                    return ans;
                }else if(ss[n-k+1]>=l&&ss[n-k+1]<=u){
                    for(int i=n-1;i>=n-k;i--){
                        ans.pb(i);
                    }
                    return ans;
                }else if(ps[k]<l&&ss[n-k+1]>u){
                    for(int i=1;i<=n-k+1;i++){
                        if(ps[i+k-1]-ps[i-1]>=l){
                            for(int j=i;j<=i+k-1;j++){
                                ans.pb(j);
                            }
                            return ans;
                        }
                    }
                }
            }
        }
    }else{
        return ans;
    }
}

Compilation message (stderr)

molecules.cpp:15:53: warning: left shift count >= width of type [-Wshift-count-overflow]
   15 | const ll maxn=(2e5)+10,maxm=1e5+10,sq=310+10,maxa=(1<<maxn),mlg=32;
      |                                                    ~^~~~~~
molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:24:12: warning: overflow in conversion from 'll' {aka 'long long int'} to 'int' changes value from '1000000000000000000' to '-1486618624' [-Woverflow]
   24 |     int mn=inf;
      |            ^~~
molecules.cpp:66:1: warning: control reaches end of non-void function [-Wreturn-type]
   66 | }
      | ^
molecules.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
molecules_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...