QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#769411#9557. TemperanceYipChip#WA 20ms12748kbC++231.5kb2024-11-21 17:29:592024-11-21 17:30:02

Judging History

你现在查看的是最新测评结果

  • [2024-11-21 17:30:02]
  • 评测
  • 测评结果:WA
  • 用时:20ms
  • 内存:12748kb
  • [2024-11-21 17:29:59]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> PII;
typedef pair<ll, PII> PPI;

bool cmp(PPI x, PPI y)
{
    return x > y;
}

void solve()
{
    int n;
    cin >> n;
    int maxn = 1e5 + 1;
    vector<vector<vector<int>>> thing(3, vector<vector<int>>(maxn));
    vector<int> st(n + 1);
    for (int i = 1; i <= n; i ++ )
    {
        int x, y, z;
        cin >> x >> y >> z;
        thing[0][x].push_back(i);
        thing[1][y].push_back(i);
        thing[2][z].push_back(i);
    }
    vector<PPI> heap;
    for (int i = 0; i < 2; i ++ )
        for (int j = 1; j <= maxn; j ++ )
            if (!thing[i][j].empty())
                heap.push_back({thing[i][j].size(), {i, j}});
    sort(heap.begin(), heap.end(), cmp);
    vector<int> ans(n);
    int now = 0, res = 0;
    for (int i = n - 1; i >= 0; i -- )
    {
        if (now >= heap.size()) break;
        while (now < heap.size() && heap[now].first - 1 >= i)
        {
            int fir = heap[now].second.first, sec = heap[now].second.second;
            for (auto t : thing[fir][sec])
            {
                if (st[t]) continue;
                st[t] = 1, res ++ ;
            }
            now ++ ;
        }
        ans[i] = n - res;
    }
    for (int i = 0; i < n; i ++ ) cout << ans[i] << " \n"[i == n - 1];
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    int T = 1;
    cin >> T;
    while (T -- ) solve();
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 7ms
memory: 12564kb

input:

2
5
1 1 1
1 1 2
1 1 3
2 3 5
2 2 4
3
1 1 1
2 2 2
3 3 3

output:

0 0 2 5 5
0 3 3

result:

ok 8 numbers

Test #2:

score: -100
Wrong Answer
time: 20ms
memory: 12748kb

input:

16
1
1 1 1
2
1 1 1
1 1 100000
3
1 1 1
1 1 100000
1 100000 1
4
1 1 1
1 1 100000
1 100000 1
1 100000 100000
5
1 1 1
1 1 100000
1 100000 1
1 100000 100000
100000 1 1
6
1 1 1
1 1 100000
1 100000 1
1 100000 100000
100000 1 1
100000 1 100000
7
1 1 1
1 1 100000
1 100000 1
1 100000 100000
100000 1 1
100000 ...

output:

0
0 0
0 0 0
0 0 0 0
0 0 0 1 5
0 0 0 0 6 6
0 0 0 1 7 7 7
0 0 0 0 8 8 8 8
0
0 0
0 0 0
0 0 0 0
0 0 0 1 5
0 0 0 0 6 6
0 0 0 1 7 7 7
0 0 0 0 8 8 8 8

result:

wrong answer 25th numbers differ - expected: '0', found: '1'