제출 #1141344

#제출 시각아이디문제언어결과실행 시간메모리
1141344harry_tm_18Detecting Molecules (IOI16_molecules)C++20
0 / 100
98 ms131072 KiB
#include "molecules.h" #include <bits/stdc++.h> using namespace std; #define ll long long vector<int> find_subset(int l, int u, vector<int> w){ int n = w.size(); vector<pair<int,int>> a; for(int i=0; i<n; ++i){ a.emplace_back(w[i],i); } sort(a.begin(), a.end()); vector<ll> suffix(n); vector<int> ans; suffix[n-1] = a[n-1].first; for(int i=n-2; i>=0; --i){ suffix[i] = suffix[i+1] + a[i].first; } ll prefixSum = 0; for(int i=0; i<n; ++i){ if(prefixSum > u) break; if(prefixSum <= l){ for(int j=0; j<=i; ++i){ ans.push_back(a[j].second); } return ans; } ll v = i, g = n-1; while(v <= g){ int mid = v + (g - v) / 2; if(prefixSum + suffix[mid] >= l && prefixSum + suffix[mid] <= u){ for(int j=0; j<i; ++j){ ans.push_back(a[j].second); } for(int j=mid+1; j<n; ++j){ ans.push_back(a[j].second); } return ans; } else if(prefixSum + suffix[mid] > u){ v = mid + 1; } else { g = mid - 1; } } prefixSum += a[i].first; } return ans; }

컴파일 시 표준 에러 (stderr) 메시지

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...