제출 #1261843

#제출 시각아이디문제언어결과실행 시간메모리
1261843bluevioletDetecting Molecules (IOI16_molecules)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #define ll long long #define io(x) if (fopen(x".inp","r")) {freopen(x".inp","r",stdin),freopen(x".out","w",stdout);} #define TimeRun {End=clock();cerr<<"Time run: "<<(float)(End-Begin)/CLOCKS_PER_SEC<<"s"<<el;} #define mem(c, x) memset(c, x, sizeof(c)) #define all(c) c.begin(), c.end() #define bit(i,j) ((i >> j) & 1) #define se second #define fi first #define el '\n' using namespace std; template<class X, class Y> bool maximize(X &a, const Y &b) { return (a < b ? a = b, 1 : 0); } template<class X, class Y> bool minimize(X &a, const Y &b) { return (a > b ? a = b, 1 : 0); } int dx[8] = {0, 1, 0,-1, 1, 1,-1,-1}; int dy[8] = {1, 0,-1, 0, 1,-1,-1, 1}; const int maxn = 1e5 + 9; const int Inf = 2e9 + 7; const ll Infll = 1e18 + 9; const ll Mod = 1e9 + 7; /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ ll n, minn, maxx; ll sum = 0, pref[maxn]; pair<ll,ll> a[maxn]; vector<int> find_subset(int l, int u, vector<int> w) { ll n = w.size(); minn = l; maxx = u; ll sum = 0; for (ll i=0; i<w.size(); i++) { a[i+1].fi = w[i]; a[i+1].se = i+1; sum += w[i]; } sort(a + 1, a + n + 1); for (ll i=1; i<=n; i++) { pref[i] = pref[i-1] + a[i].fi; } vector<ll> empt; if (sum < minn || a[1].fi > maxx) return empt; for (ll i=1; i<=n; i++) { ll l = i, r = n; while (l <= r) { ll mid = l + r >> 1; if (pref[mid] - pref[i-1] > maxx) { r = mid - 1; } else if (pref[mid] - pref[i-1] < minn) { l = mid + 1; } else { vector<ll> ans; for (ll j=i; j<=mid; j++) { ans.push_back(a[j].se - 1); } sort(all(ans)); return ans; } } } return empt; }

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

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:46:50: error: could not convert 'empt' from 'vector<long long int>' to 'vector<int>'
   46 |         if (sum < minn || a[1].fi > maxx) return empt;
      |                                                  ^~~~
      |                                                  |
      |                                                  vector<long long int>
molecules.cpp:63:40: error: could not convert 'ans' from 'vector<long long int>' to 'vector<int>'
   63 |                                 return ans;
      |                                        ^~~
      |                                        |
      |                                        vector<long long int>
molecules.cpp:67:16: error: could not convert 'empt' from 'vector<long long int>' to 'vector<int>'
   67 |         return empt;
      |                ^~~~
      |                |
      |                vector<long long int>
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
      |         ^~~~