답안 #913254

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
913254 2024-01-20T06:56:17 Z 12345678 곤돌라 (IOI14_gondola) C++17
75 / 100
50 ms 4692 KB
#include "gondola.h"
#include <bits/stdc++.h>

using namespace std;

const int mod=1e9+9;

int valid(int n, int inputSeq[])
{
    set<int> st;
    for (int i=0; i<n; i++) 
    {
        if (st.find(inputSeq[i])!=st.end()) return 0;
        st.insert(inputSeq[i]);
    }
    int s, cnt(0);
    bool can=1;
    pair<int, int> mn={INT_MAX, -1};
    for (int i=0; i<n; i++) mn=min(mn, {inputSeq[i], i});
    if (mn.first>n) return 1;
    cnt=mn.first;
    s=mn.second;
    for (int i=s; i<n; i++) if (inputSeq[i]!=cnt++&&inputSeq[i]<=n) can=0;
    for (int i=0; i<s; i++) if (inputSeq[i]!=cnt++&&inputSeq[i]<=n) can=0;
    return can;
}

//----------------------

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
    int cnt(0), res(0);
    set<pair<int, int>> s;
    for (int i=0; i<n; i++) if (gondolaSeq[i]>n) s.insert({gondolaSeq[i], i});
    pair<int, int> mn={INT_MAX, -1};
    for (int i=0; i<n; i++) if (gondolaSeq[i]<=n) mn=min(mn, {gondolaSeq[i], i});
    if (mn.first==INT_MAX) mn={1, 0};
    cnt=mn.first-1;
    vector<int> p(n);
    for (int i=mn.second; i<n; i++) p[i]=(++cnt)>n?cnt-n:cnt;
    for (int i=0; i<mn.second; i++) p[i]=(++cnt)>n?cnt-n:cnt;
    for (auto [x, y]:s)
    {
        replacementSeq[res++]=p[y];
        while (res+n!=x) replacementSeq[res]=res+n, res++;
    }
    return res;
}

//----------------------

int countReplacement(int n, int inputSeq[])
{
    if (!valid(n, inputSeq)) return 0;
    int sz(n+1);
    long long ans=1, l;
    set<pair<int, int>> s;
    for (int i=0; i<n; i++) if (inputSeq[i]>n) s.insert({inputSeq[i], i});
    if ((int)s.size()==n) for (int i=1; i<=n; i++) ans=(ans*i)%mod;
    l=s.size();
    for (auto [x, y]:s)
    {
        while (sz!=x) ans=(ans*l)%mod, sz++;
        sz++;
        l--;
    }
    return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 600 KB Output is correct
5 Correct 1 ms 408 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 10 ms 2180 KB Output is correct
7 Correct 7 ms 604 KB Output is correct
8 Correct 21 ms 3928 KB Output is correct
9 Correct 7 ms 1368 KB Output is correct
10 Correct 28 ms 4600 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 11 ms 2136 KB Output is correct
7 Correct 7 ms 600 KB Output is correct
8 Correct 27 ms 3964 KB Output is correct
9 Correct 7 ms 1368 KB Output is correct
10 Correct 33 ms 4444 KB Output is correct
11 Correct 1 ms 504 KB Output is correct
12 Correct 1 ms 344 KB Output is correct
13 Correct 18 ms 2140 KB Output is correct
14 Correct 1 ms 348 KB Output is correct
15 Correct 44 ms 4692 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 1 ms 764 KB Output is correct
3 Correct 1 ms 756 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 368 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 600 KB Output is correct
10 Correct 1 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 2 ms 504 KB Output is correct
9 Correct 1 ms 500 KB Output is correct
10 Correct 1 ms 344 KB Output is correct
11 Correct 9 ms 856 KB Output is correct
12 Correct 12 ms 1116 KB Output is correct
13 Correct 21 ms 2516 KB Output is correct
14 Correct 6 ms 856 KB Output is correct
15 Correct 24 ms 3160 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 504 KB Output is correct
5 Correct 1 ms 360 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 1 ms 504 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 344 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 344 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 48 ms 4152 KB Output is correct
10 Correct 34 ms 3420 KB Output is correct
11 Correct 16 ms 1376 KB Output is correct
12 Correct 17 ms 1624 KB Output is correct
13 Incorrect 4 ms 604 KB Output isn't correct
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 344 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 50 ms 4156 KB Output is correct
10 Correct 37 ms 3388 KB Output is correct
11 Correct 16 ms 1324 KB Output is correct
12 Correct 16 ms 1624 KB Output is correct
13 Incorrect 5 ms 604 KB Output isn't correct
14 Halted 0 ms 0 KB -