Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _FORTIFY_SOURCE 0
- #pragma GCC optimize("Ofast")
- #pragma GCC optimize("no-stack-protector")
- #pragma GCC optimize("unroll-loops")
- #pragma GCC target("sse,sse2,sse3,ssse3,popcnt,abm,mmx,tune=native")
- #pragma GCC optimize("fast-math")
- #include <iostream>
- #include <math.h>
- #include <algorithm>
- #include <iomanip>
- #include <vector>
- #include <set>
- #include <map>
- #include <deque>
- #include <stack>
- #include <unordered_map>
- using namespace std;
- typedef long long ll;
- typedef long double ld;
- typedef pair<ll, ll> pl;
- typedef pair<ld, ld> pd;
- const ll N = 1 * 1e7 + 100;
- const ll M = 1e4 + 100;
- const ll INF = 1e18 + 100;
- #define x first
- #define y second
- #define pb push_back
- int firstMissingPositive(vector<int>& nums) {
- int32_t ans = 1;
- int32_t k = INT32_MAX;
- int32_t s = -1;
- for (const int32_t num : nums) {
- if (num > 0) {
- if (num == ans) {
- ans++;
- } else if (num > ans) {
- if (num - ans < k) {
- k = min(k, num - ans);
- s = num;
- }
- }
- }
- }
- cout << "s = " << s << endl;
- cout << "k = " << k << endl;
- cout << "ans = '" << ans << endl;
- return s == ans ? s + 1 : ans;
- }
- int main() {
- int n;
- cin >> n;
- vector<int> a(n);
- for (int i = 0; i < n; i++) {
- cin >> a[i];
- }
- cout << firstMissingPositive(a);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement