Submission #763691

# Submission time Handle Problem Language Result Execution time Memory
763691 2023-06-22T15:47:50 Z Kripton Fish (IOI08_fish) C++14
12 / 100
3000 ms 5736 KB
#include <bits/stdc++.h>
using namespace std;

pair <int, int> v[500001];
int vf[500001], maxi[500001];
bitset <500001> checc, dezact;

int k, m;

int recalc()
{
    int rez = 1;
    for(int i = 1; i <= k; i++)
        if(!dezact[i])
            rez = 1LL * rez * (vf[i] + 1) % m;
    return rez;
}

int recalc_fara(int j)
{
    int rez = 1;
    for(int i = 1; i <= k; i++)
        if(i != j)
            rez = 1LL * rez * (vf[i] + 1) % m;
    return rez;
}

int main()
{
#ifdef HOME
    freopen("test.in", "r", stdin);
    freopen("test.out", "w", stdout);
#endif // HOME
    int n;
    cin >> n >> k >> m;
    for(int i = 1; i <= n; i++)
        cin >> v[i].first >> v[i].second;
    sort(v + 1, v + n + 1);
    int j = 1;
    while(j <= n && 2 * v[j].first <= v[n].first)
        vf[v[j++].second]++;
    j--;
    for(int i = 1; i <= k; i++)
        maxi[i] = vf[i];
    int cate = (recalc() - 1 + m) % m;
    for(int i = n; i >= 1; i--)
    {
        while(j >= 1 && 2 * v[j].first > v[i].first)
            vf[v[j--].second]--;
        if(!checc[v[i].second])
        {
            checc[v[i].second] = 1;
            if(vf[v[i].second] == maxi[v[i].second])
                cate = (cate + recalc_fara(v[i].second)) % m;
        }
        //cout << cate << " ";
    }
    cout << cate;
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Incorrect 1 ms 340 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Incorrect 239 ms 4144 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 95 ms 1848 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 168 ms 2596 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 230 ms 4232 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 192 ms 2644 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 671 ms 3836 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1495 ms 4368 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 3072 ms 3916 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 3070 ms 4964 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 3056 ms 5008 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 3049 ms 5736 KB Time limit exceeded
2 Halted 0 ms 0 KB -