Submission #1499557


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 (tmp < A[i]) continue;
		if (M.find(tmp) == M.end()) ans += M.find(A[i]) -> second;
		else 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 0
Code Size 1730 Byte
Status WA
Exec Time 1494 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 0 / 1100
Status
AC × 2
WA × 1
AC × 20
WA × 31
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 WA 1487 ms 7296 KB
02.txt WA 1486 ms 7296 KB
03.txt WA 1485 ms 7296 KB
04.txt WA 1490 ms 7296 KB
05.txt WA 1486 ms 7296 KB
06.txt WA 1486 ms 7296 KB
07.txt WA 1485 ms 7296 KB
08.txt WA 1484 ms 7296 KB
09.txt WA 1494 ms 7296 KB
10.txt WA 1488 ms 7296 KB
11.txt WA 1429 ms 3072 KB
12.txt WA 1434 ms 3072 KB
13.txt WA 1366 ms 3456 KB
14.txt WA 1386 ms 3456 KB
15.txt WA 1366 ms 3456 KB
16.txt WA 1372 ms 3456 KB
17.txt AC 1349 ms 1152 KB
18.txt AC 1350 ms 1152 KB
19.txt AC 1349 ms 1152 KB
20.txt AC 1350 ms 1152 KB
21.txt WA 1445 ms 4864 KB
22.txt WA 1444 ms 4864 KB
23.txt WA 1446 ms 6912 KB
24.txt WA 1448 ms 4864 KB
25.txt WA 1446 ms 4864 KB
26.txt WA 1446 ms 4864 KB
27.txt AC 1415 ms 6272 KB
28.txt AC 1306 ms 1152 KB
29.txt AC 1337 ms 1152 KB
30.txt WA 1307 ms 1152 KB
31.txt AC 1340 ms 1152 KB
32.txt AC 1336 ms 1152 KB
33.txt WA 1 ms 256 KB
34.txt AC 1330 ms 1152 KB
35.txt AC 1331 ms 1152 KB
36.txt AC 1 ms 256 KB
37.txt WA 1440 ms 3456 KB
38.txt WA 1440 ms 3456 KB
39.txt WA 1450 ms 3456 KB
40.txt WA 1439 ms 3456 KB
41.txt AC 1 ms 256 KB
42.txt AC 1 ms 256 KB
43.txt WA 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 WA 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 WA 1 ms 256 KB