QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#755624 | #9736. Kind of Bingo | hxsj# | WA | 8ms | 3616kb | C++14 | 1.1kb | 2024-11-16 17:46:46 | 2024-11-16 17:46:48 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
const int N = 30;
int p[N];
void init()
{
for(int i = 0;i<=N;i++)
{
p[i] = i;
}
}
int find(int x) // 并查集
{
if (p[x] != x) p[x] = find(p[x]);
return p[x];
}
void merge(int x,int y)
{
x = find(x),y = find(y);
if(x!=y)
{
p[x] = p[y];
}
}
int main()
{
int t;
cin>>t;
while(t--)
{
int n, m, k;
cin >> n >> m >> k;
vector<int> a(n * m);
for(int i = 0; i < n * m; i++){
cin >> a[i];
}
int l = m;
int r = n * m;
int mid;
auto check = [&](int x){
vector<int> st(n);
int cnt = 0;
for(int i = 0; i < x; i++){
st[a[i] / m]++;
cnt = max(cnt, st[a[i] / m]);
}
if(cnt + k >= m) return 1;
return 0;
};
while(l < r){
mid = (l + r) >> 1;
if(check(mid)) r = mid;
else l = mid + 1;
}
cout << l << endl;
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3616kb
input:
3 3 5 2 1 4 13 6 8 11 14 2 7 10 3 15 9 5 12 2 3 0 1 6 4 3 5 2 2 3 1000000000 1 2 3 4 5 6
output:
7 5 3
result:
ok 3 number(s): "7 5 3"
Test #2:
score: -100
Wrong Answer
time: 8ms
memory: 3600kb
input:
10000 1 9 7 8 9 1 5 3 7 4 6 2 1 8 2 7 5 1 6 4 2 3 8 1 1 0 1 1 8 3 5 7 8 3 2 1 4 6 1 10 948645336 3 10 1 6 2 8 9 5 7 4 1 1 0 1 1 10 7 5 3 10 8 1 7 4 9 6 2 1 9 6 4 8 5 7 2 6 3 1 9 1 7 1 3 5 1 6 2 7 4 1 6 6 5 3 1 2 4 6 1 1 1 1 1 2 0 1 2 1 1 1 1 1 6 3 5 6 2 4 3 1 1 5 673454194 2 3 1 4 5 1 4 1 1 4 2 3 1 ...
output:
9 8 1 8 10 1 10 9 7 6 1 2 1 6 5 4 1 7 3 3 6 8 9 10 5 6 2 10 4 2 5 7 10 1 4 1 3 9 1 2 4 3 10 5 5 2 5 6 9 5 10 1 7 5 2 2 7 1 2 9 8 9 1 6 6 2 2 1 2 6 4 6 1 2 6 4 2 3 4 7 3 4 1 6 3 5 10 7 4 1 10 3 4 2 6 10 1 8 4 9 9 10 4 6 3 3 6 2 2 6 6 10 7 7 1 3 2 7 9 3 4 4 5 6 3 7 5 6 5 5 8 2 6 6 9 7 7 10 8 1 1 10 7 ...
result:
wrong answer 2011th numbers differ - expected: '4', found: '6'