Submission #711335


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

#define rep(i,n) for(int i = 0; i < n; i++)
#define all(x) x.begin(), x.end()
#define Min(x) *min_element(all(x))
#define Max(x) *max_element(all(x))
template <typename T, typename U> ostream &operator<<(ostream &o, const pair<T, U> &v) {  o << "(" << v.first << ", " << v.second << ")"; return o; }
template <typename T> ostream &operator<<(ostream &o, const vector<T> &v) { if (!v.empty()) { o << '['; copy(v.begin(), v.end(), ostream_iterator<T>(o, ", ")); o << "\b\b]"; } return o; }
using ll = long long; using ld = long double; using vll = vector<ll>; using vi = vector<int>;
typedef pair<int, int> P;

static const double EPS = 1e-14;
static const long long INF = 1e18;
#define MAX_N 100005

ll n;
vll a;
bool check(ll l) // l個切り出せるなら1
{
    if (l > n) return false;

    map<ll, int> s;
    rep(i, l) 
        s[a[i]]++;
    if (s.size() == l)
        return true;
    rep(i, n-l) {
        s[a[i]]--; if (!s[a[i]]) s.erase(a[i]);
        s[a[i+l]]++;
        if (s.size() == l)
            return true;
    }
    return false;
}

int main(void) {
    cin.tie(0); ios::sync_with_stdio(false);
    n; cin >> n;
    a = vll(n); rep(i, n) cin >> a[i];

    // デバッグはここでチェック関数を確認するといい
    /*
    while (1) {
    ll t; cin >> t; 
    cout << check(t) << endl;
    }
    */

    // 構造は11111000000なら、!check(mid)
    // lは最大の満たさない場所、rは最小の満たす場所。
    ll lo = 1, ro = n+1; // lが満たさないことを確認!
    while (ro - lo != 1) { 
        ll mid = (lo + ro) / 2; 
        // check関数が単純ならここに書いてもいいが、デバッグしにくくなるので関数は分けるべき
        !check(mid)?ro=mid:lo=mid; 
    }
    cout << lo << endl;

    return 0;
}

Submission Info

Submission Time
Task B - 細長いお菓子
User hamko
Language C++11 (GCC 4.8.1)
Score 100
Code Size 1907 Byte
Status AC
Exec Time 1134 ms
Memory 7872 KB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3
Score / Max Score 0 / 0 50 / 50 49 / 49 1 / 1
Status
AC × 2
AC × 14
AC × 24
AC × 29
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
Subtask1 sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt
Subtask2 sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt
Subtask3 subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask3_01.txt, subtask3_02.txt, subtask3_03.txt, subtask3_04.txt, subtask3_05.txt, subtask3_06.txt, subtask3_07.txt
Case Name Status Exec Time Memory
sample_01.txt AC 28 ms 872 KB
sample_02.txt AC 27 ms 916 KB
subtask1_01.txt AC 26 ms 872 KB
subtask1_02.txt AC 24 ms 864 KB
subtask1_03.txt AC 24 ms 912 KB
subtask1_04.txt AC 25 ms 880 KB
subtask1_05.txt AC 27 ms 868 KB
subtask1_06.txt AC 27 ms 864 KB
subtask1_07.txt AC 24 ms 912 KB
subtask1_08.txt AC 26 ms 860 KB
subtask1_09.txt AC 26 ms 916 KB
subtask1_10.txt AC 27 ms 872 KB
subtask1_11.txt AC 28 ms 864 KB
subtask1_12.txt AC 26 ms 876 KB
subtask2_01.txt AC 27 ms 864 KB
subtask2_02.txt AC 28 ms 876 KB
subtask2_03.txt AC 28 ms 876 KB
subtask2_04.txt AC 27 ms 868 KB
subtask2_05.txt AC 27 ms 872 KB
subtask2_06.txt AC 27 ms 908 KB
subtask2_07.txt AC 28 ms 868 KB
subtask2_08.txt AC 30 ms 916 KB
subtask2_09.txt AC 29 ms 876 KB
subtask2_10.txt AC 27 ms 920 KB
subtask3_01.txt AC 161 ms 1172 KB
subtask3_02.txt AC 387 ms 2664 KB
subtask3_03.txt AC 421 ms 2664 KB
subtask3_04.txt AC 1045 ms 4032 KB
subtask3_05.txt AC 1134 ms 4028 KB
subtask3_06.txt AC 935 ms 4068 KB
subtask3_07.txt AC 817 ms 7872 KB