c++
c- -
Quân vừa tham gia câu lạc bộ của nhà trường. Trong câu lạc bộ có n học sinh được chia thành từng tổ khác nhau. Mỗi học sinh thuộc một tổ nào đó. Trong buổi làm quen cậu muốn biết câu lạc bộ có bao nhiêu tổ. Khi gặp từng người cậu hỏi duy nhất một câu hỏi: “ Tổ của bạn có bao nhiêu người?”. Từ kết quả trả lời của từng học sinh, cậu đã xác định được số tổ của câu lạc bộ.
Ví dụ: với n= 7 và các câu trả lời lần lượt là 2, 3, 2, 3, 2, 2, 3 thì câu lạc bộ có 3 tổ khác nhau.
Yêu cầu: Cho n<=106 và các câu trả lời. Hãy xác định tổ của câu lạc bộ. Dữ liệu luôn đảm bảo có kết quả.
Dữ liệu vào: từ file văn bản CLB.inp gồm:
Kết quả: ghi ra file văn bản CLB.out gồm một số tự nhiện k là số tổ của câu lạc bộ.
CLB.inp
7
CLB.out
2 3 2 3 2 2 3
3
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
2
1
Code của bạn đây
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define mas(a, n) a + 1, a + n + 1
#define cts(a) a.begin(), a.end()
using namespace std;
void testcase()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
}
void readfo()
{
freopen("CLB.inp", "r", stdin);
freopen("CLB.out", "w", stdout);
}
int n;
ll ans, x;
map<ll, ll> cnt;
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
testcase();
readfo();
cin >> n;
while (n--)
cin >> x, cnt[x]++;
for (auto i : cnt)
{
ans += i.second / i.first;
if (i.second % i.first != 0)
ans++;
}
cout << ans;
cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
return 0;
}
// Code written by longdegea
Hãy giúp mọi người biết câu trả lời này thế nào?
#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
freopen ("CLB.inp", "r", stdin);
freopen ("CLB.out", "w", stdin);
int n; cin >> n;
set <int> st;
for (int i = 0; i < n; i ++)
{
int c; cin >> c;
st.insert(c);
}
cout << st.size();
}
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin
1090
17394
854
gay vch