QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#689301 | #1965. Trio | k1nsom# | WA | 1ms | 3788kb | C++23 | 1.7kb | 2024-10-30 16:16:50 | 2024-10-30 16:17:07 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int N = 2e3 + 5;
int n, a[N][5], jc[N], cnt[N][20];
int C(int n, int k)
{
return jc[n] / jc[k] / jc[n - k];
}
void solve()
{
cin >> n;
for (int i = 1; i <= n; i++)
{
string s;
cin >> s;
for (int j = 1; j <= 4; j++)
a[i][j] = s[j] - '0';
}
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
if (i != j)
{
int st = 0;
for (int k = 1; k <= 4; k++)
if (a[i][k] == a[j][k])
st |= 1 << (k - 1);
cnt[i][st]++;
}
int ans = 0;
for (int i = 1; i <= n; i++)
for (int j = i + 1; j <= n; j++)
{
int zt = 0;
for (int k = 1; k <= 4; k++)
if (a[i][k] == a[j][k])
zt |= 1 << (k - 1);
ans += cnt[i][zt] - 1;
int tot = __builtin_popcount(15 ^ zt);
for (int st = zt + 1; st < 16; st++)
if ((st & zt) == zt)
{
int js = __builtin_popcount(st ^ zt);
if (js & 1)
ans -= js * cnt[j][st];
else
ans += js * cnt[j][st];
}
}
cout << ans / 3 << endl;
}
signed main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int t = 1;
// cin>>t;
jc[0] = 1;
for (int i = 1; i <= 10; i++)
jc[i] = i * jc[i - 1];
while (t--)
solve();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 3788kb
input:
4 1234 2345 3456 4567
output:
4
result:
ok single line: '4'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3784kb
input:
9 1299 2399 3499 4599 5699 6799 7899 8999 9199
output:
84
result:
ok single line: '84'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3556kb
input:
9 1239 2349 3459 4569 5679 6789 7899 8919 9129
output:
84
result:
ok single line: '84'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3552kb
input:
9 1999 2999 3999 4999 5999 6999 7999 8999 9999
output:
84
result:
ok single line: '84'
Test #5:
score: 0
Accepted
time: 0ms
memory: 3560kb
input:
9 1234 2345 3456 4567 5678 6789 7891 8912 9123
output:
84
result:
ok single line: '84'
Test #6:
score: -100
Wrong Answer
time: 0ms
memory: 3612kb
input:
18 1211 2311 3411 4511 5611 6711 7811 8911 9111 1222 2322 3422 4522 5622 6722 7822 8922 9122
output:
696
result:
wrong answer 1st lines differ - expected: '168', found: '696'