Submission #247406

# Submission time Handle Problem Language Result Execution time Memory
247406 2020-07-11T10:32:39 Z Artyom123 Gondola (IOI14_gondola) C++14
20 / 100
48 ms 5496 KB
#include <bits/stdc++.h>
#include <gondola.h>
 
using namespace std;
 
#define fi first
#define se second
#define all(x) (x).begin(), (x).end()
#define pb emplace_back
#define ll long long
#define ld long double
 
const int INF = 2e9 + 1;
const ll INFLL = 1e18 + 1;
const int mod = 1e9 + 9;
 
int valid(int n, int inputSeq[]) {
    vector<int> a(n);
    set<int> lol;
    for (int i = 0; i < n; i++) {
        a[i] = inputSeq[i];
        lol.insert(a[i]);
    }
    if ((int)lol.size() != n) return 0;
    int ind = -1;
    for (int i = 0; i < n; i++) {
        if (a[i] <= n) ind = i;
    }
    if (ind == -1) return 1;
    int now = a[ind];
    for (int i = 0; i < n; i++) {
        if (a[ind] <= n && a[ind] != now) return 0;
        ind++;
        if (ind >= n) ind -= n;
        now++;
        if (now > n) now = 1;
    }
    return 1;
}
 
int replacement(int n, int gondolaSeq[], int replacementSeq[]) {
    return 0;
}
 
ll my_pow(ll n, ll m) {
    if (m == 0) return 1;
    ll now = my_pow(n, m / 2);
    if (m % 2 == 0) return (now * now) % mod;
    return (((now * now) % mod) * n) % mod;
}
 
int countReplacement(int n, int inputSeq[]) {
    if (!valid(n, inputSeq)) return 0;
    vector<int> a(n);
    bool f = false, is_fixed = false;
    vector<int> lol;
    ll cnt = n;
    for (int i = 0; i < n; i++) {
        a[i] = inputSeq[i];
        if (a[i] > n) {
            f = true;
            lol.pb(a[i]);
        }
        if (a[i] <= n) {
            is_fixed = true;
            cnt--;
        }
    }
    if (!f) return 0;
    sort(all(lol));
    ll last = n;
    ll ans = 1;
    for (int i = 0; i < (int)lol.size(); i++) {
        ans *= my_pow(cnt, lol[i] - last - 1);
        ans %= mod;
        last = lol[i];
        cnt--;
    }
    if (!is_fixed) {
        ans *= n;
        ans %= mod;
    }
    return ans;
}
 
/*
int main() {
    int n;
    cin >> n;
    int a[n];
    for (int i = 0; i < n; i++) cin >> a[i];
    cout << countReplacement(n, a);
    return 0;
}
*/
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 5 ms 256 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 23 ms 2688 KB Output is correct
7 Correct 38 ms 4476 KB Output is correct
8 Correct 29 ms 4728 KB Output is correct
9 Correct 12 ms 1664 KB Output is correct
10 Correct 41 ms 5372 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 5 ms 256 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 4 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 16 ms 2560 KB Output is correct
7 Correct 36 ms 4472 KB Output is correct
8 Correct 28 ms 4736 KB Output is correct
9 Correct 12 ms 1664 KB Output is correct
10 Correct 34 ms 5376 KB Output is correct
11 Correct 5 ms 384 KB Output is correct
12 Correct 4 ms 256 KB Output is correct
13 Correct 21 ms 2432 KB Output is correct
14 Correct 5 ms 256 KB Output is correct
15 Correct 48 ms 5496 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 416 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 256 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Incorrect 5 ms 384 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 256 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Incorrect 5 ms 384 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Incorrect 5 ms 384 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Incorrect 5 ms 384 KB Output isn't correct
4 Halted 0 ms 0 KB -