Submission #1499558
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
#define FOR(i, s, e) for(int i = (s); i < (e); i++)
#define FOE(i, s, e) for(int i = (s); i <= (e); i++)
#define FOD(i, s, e) for(int i = (s); i >= (e); i--)
#define ll long long
ll A[100005], prime[10005], prime_3[10005];
int n, m, x, y, z, k, w;
int p[10005];
map<ll, int> M;
void find_prime()
{
FOE(i, 2, 10000)
{
if (p[i] == 1) continue;
for (int j = i * i; j <= 10000; j += i) p[j] = 1;
}
FOE(i, 2, 10000) if (p[i] == 0)
{
prime[k] = i;
prime_3[k++] = 1ll * i * i * i;
}
}
ll inv(ll x)
{
ll tmp = x, ret = 1ll;
FOR(i, 0, k)
{
if (prime_3[i] > tmp) break;
y = 0;
while (tmp % prime[i] == 0)
{
tmp /= prime[i];
y++;
}
if (y == 1) ret *= prime[i] * prime[i];
else if (y == 2) ret *= prime[i];
if (ret > 10000000000ll) return -1;
}
ll t = (ll)sqrt(tmp);
if (t * t == tmp) ret *= t;
else ret *= tmp * tmp;
if (ret > 10000000000ll) return -1;
return ret;
}
int main ()
{
find_prime();
scanf("%d", &n);
FOR(i, 0, n)
{
scanf("%lld", &A[i]);
FOR(j, 0, k) while (A[i] % prime_3[j] == 0) A[i] /= prime_3[j];
}
sort(A, A + n);
x = 0;
FOR(i, 0, n)
{
x++;
if (i == n - 1 || A[i] != A[i + 1])
{
M.insert(make_pair(A[i], x));
x = 0;
}
}
//FOR(i, 0, n) printf("%lld ", A[i]); printf("\n");
int ans = 0;
ll tmp;
FOR(i, 0, n)
{
if (A[i] == 1) continue;
if (i > 0 && A[i] == A[i - 1]) continue;
// printf("%d %d\n", A[i], M.find(A[i]) -> second);
tmp = inv(A[i]);
if (M.find(tmp) == M.end()) ans += M.find(A[i]) -> second;
else
{
if (tmp < A[i]) continue;
ans += max(M.find(A[i]) -> second, M.find(tmp) -> second);
}
}
if (A[0] == 1) ans++;
printf("%d\n", ans);
}
Submission Info
Submission Time |
|
Task |
D - Anticube |
User |
vjudge1 |
Language |
C++14 (GCC 5.4.1) |
Score |
1100 |
Code Size |
1743 Byte |
Status |
AC |
Exec Time |
1517 ms |
Memory |
7296 KB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:61:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &n);
^
./Main.cpp:64:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld", &A[i]);
^
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
1100 / 1100 |
Status |
|
|
Set Name |
Test Cases |
Sample |
s1.txt, s2.txt, s3.txt |
All |
01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, s1.txt, s2.txt, s3.txt |
Case Name |
Status |
Exec Time |
Memory |
01.txt |
AC |
1516 ms |
7296 KB |
02.txt |
AC |
1513 ms |
7296 KB |
03.txt |
AC |
1513 ms |
7296 KB |
04.txt |
AC |
1508 ms |
7296 KB |
05.txt |
AC |
1512 ms |
7296 KB |
06.txt |
AC |
1511 ms |
7296 KB |
07.txt |
AC |
1517 ms |
7296 KB |
08.txt |
AC |
1510 ms |
7296 KB |
09.txt |
AC |
1509 ms |
7296 KB |
10.txt |
AC |
1513 ms |
7296 KB |
11.txt |
AC |
1428 ms |
3072 KB |
12.txt |
AC |
1433 ms |
3072 KB |
13.txt |
AC |
1367 ms |
3456 KB |
14.txt |
AC |
1367 ms |
3456 KB |
15.txt |
AC |
1367 ms |
3456 KB |
16.txt |
AC |
1374 ms |
3456 KB |
17.txt |
AC |
1345 ms |
1152 KB |
18.txt |
AC |
1345 ms |
1152 KB |
19.txt |
AC |
1350 ms |
1152 KB |
20.txt |
AC |
1346 ms |
1152 KB |
21.txt |
AC |
1463 ms |
4864 KB |
22.txt |
AC |
1456 ms |
4864 KB |
23.txt |
AC |
1457 ms |
4864 KB |
24.txt |
AC |
1457 ms |
4864 KB |
25.txt |
AC |
1457 ms |
4864 KB |
26.txt |
AC |
1450 ms |
4864 KB |
27.txt |
AC |
1416 ms |
6272 KB |
28.txt |
AC |
1301 ms |
1152 KB |
29.txt |
AC |
1332 ms |
1152 KB |
30.txt |
AC |
1302 ms |
1152 KB |
31.txt |
AC |
1331 ms |
1152 KB |
32.txt |
AC |
1332 ms |
1152 KB |
33.txt |
AC |
1 ms |
256 KB |
34.txt |
AC |
1315 ms |
1152 KB |
35.txt |
AC |
1327 ms |
1152 KB |
36.txt |
AC |
1 ms |
256 KB |
37.txt |
AC |
1443 ms |
3456 KB |
38.txt |
AC |
1446 ms |
3456 KB |
39.txt |
AC |
1450 ms |
3456 KB |
40.txt |
AC |
1445 ms |
3456 KB |
41.txt |
AC |
1 ms |
256 KB |
42.txt |
AC |
1 ms |
256 KB |
43.txt |
AC |
1 ms |
256 KB |
44.txt |
AC |
1 ms |
256 KB |
45.txt |
AC |
1 ms |
256 KB |
46.txt |
AC |
1 ms |
256 KB |
47.txt |
AC |
1 ms |
256 KB |
48.txt |
AC |
1 ms |
256 KB |
s1.txt |
AC |
1 ms |
256 KB |
s2.txt |
AC |
1 ms |
256 KB |
s3.txt |
AC |
1 ms |
256 KB |