답안 #149686

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
149686 2019-09-01T06:58:11 Z shdut0901(#3758, shdut) List of Unique Integers (FXCUP4_unique) C++17
100 / 100
6 ms 512 KB
#include "unique.h"
#include <iostream>
#include <stdio.h>
#include <string>
#include <string.h>
#include <map>
#include <set>
#include <vector>
#include <queue>
#include <algorithm>
#include <assert.h>

using namespace std;

#define rep(i, a, b) for(int i = a; i < b; i++)
#define per(i, a, b) for(int i = b - 1; i >= a; i--)
#define ll long long
#define x first
#define y second
#define vi vector<int>
#define pii pair<int, int>
#define SZ(x) (int)(x.size())
#define mp make_pair
#define pb push_back
#define all(x) x.begin(), x.end()
#define mod 1000000007
#define inf 1000000007
#define DBG(x) cerr << (#x) << "=" << x << "\n";

#define N 100005

template<typename U, typename V> void Min(U &a, const V &b){if(a > b) a = b;}
template<typename U, typename V> void Max(U &a, const V &b){if(a < b) a = b;}
template<typename U, typename V> void add(U &a, const V &b){a = (a+b) % mod;}


std::vector<int> PickUnique(int n) {
	if(n == 1){
		return vi({0});
	}
	int x = UniqueCount(0, n-1), s = x;
	vi ans(n, 0);
	ans[n-1] = 1;
	ans[0] = 1;
	rep(i, 1, n){
		int k = UniqueCount(i, n-1);
		if(k == x - 1){
			ans[i-1] |= 1;
		}
		else{
			ans[i-1] |= 2;
		}
		x = k;	
	}
	x = s;
	per(i, 0, n-1){
		int k = UniqueCount(0, i);
		if(k == x - 1){
			ans[i+1] |= 1;
		}
		else{
			ans[i+1] |= 2;
		}
		x = k;	
	}
	vi res(n);
	rep(i, 0, n)if(ans[i] == 1)res[i] = 1;
	else res[i] = 0;
	return res;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 256 KB Correct : C = 3
2 Correct 5 ms 256 KB Correct : C = 9
3 Correct 5 ms 384 KB Correct : C = 49
4 Correct 5 ms 384 KB Correct : C = 99
5 Correct 5 ms 384 KB Correct : C = 99
6 Correct 6 ms 384 KB Correct : C = 153
7 Correct 6 ms 384 KB Correct : C = 199
8 Correct 6 ms 512 KB Correct : C = 299
9 Correct 5 ms 512 KB Correct : C = 355
10 Correct 6 ms 512 KB Correct : C = 399
11 Correct 6 ms 512 KB Correct : C = 399
12 Correct 6 ms 512 KB Correct : C = 399
13 Correct 6 ms 512 KB Correct : C = 399
14 Correct 6 ms 512 KB Correct : C = 399
15 Correct 6 ms 512 KB Correct : C = 399