답안 #253946

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
253946 2020-07-29T06:51:19 Z Vimmer Nekameleoni (COCI15_nekameleoni) C++14
56 / 140
3000 ms 1664 KB
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>

//#pragma GCC optimize("unroll-loops")
//#pragma GCC optimize("-O3")
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("fast-math")
//#pragma GCC optimize("no-stack-protector")

#define F first
#define S second
#define sz(x) int(x.size())
#define pb push_back
#define pf push_front
#define N 100050
#define M ll(1e9 + 7)
#define inf 1e9 + 1e9

using namespace std;
//using namespace __gnu_pbds;

typedef long double ld;
typedef long long ll;
typedef unsigned long long ull;
typedef short int si;
typedef array <ll, 3> a3;
typedef array <ll, 5> a5;

//typedef tree <ll, null_type, less_equal<ll>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;


int kol[55], koler, kl[55];

int main()
{
    //freopen("input.txt", "r", stdin); //freopen("output4.txt", "w", stdout);

    ios_base::sync_with_stdio(0); istream::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    int n, k, m;

    cin >> n >> k >> m;

    int a[n];

    for (int i = 0; i < n; i++) {cin >> a[i]; kol[a[i]]++; if (kol[a[i]] == 1) koler++;}

    for (; m > 0; m--)
    {
        int t;

        cin >> t;

        if (t == 1)
        {
            int p, x;

            cin >> p >> x;

            p--;

            kol[a[p]]--; if (kol[a[p]] == 0) koler--;

            a[p] = x;

            kol[a[p]]++; if (kol[a[p]] == 1) koler++;

            continue;
        }

        if (koler != k) {cout << "-1" << '\n'; continue;}

        int ans = n, l = 0, r = 0, kr = 0;

        memset(kl, 0, sizeof(kl));

        while (r < n)
        {
            kl[a[r]]++;

            if (kl[a[r]] == 1) kr++;

            while (kl[a[l]] != 1) kl[a[l++]]--;

            if (kr == k) ans = min(ans, r - l + 1);

            r++;
        }

        cout << ans << '\n';
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 29 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 44 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 62 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2119 ms 1128 KB Output is correct
2 Correct 27 ms 1664 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3061 ms 1120 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3073 ms 1172 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3083 ms 1136 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3047 ms 1144 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3097 ms 1400 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3097 ms 1400 KB Time limit exceeded
2 Halted 0 ms 0 KB -