Submission #1679773
Source Code Expand
// need
#include <iostream>
#include <algorithm>
// data structure
#include <bitset>
//#include <list>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <utility>
#include <vector>
#include <array>
//#include <tuple>
//#include <unordered_map>
#include <unordered_set>
#include <complex>
//#include <deque>
#include <valarray>
// stream
//#include <istream>
//#include <sstream>
//#include <ostream>
//#include <fstream>
// etc
#include <cassert>
#include <cmath>
#include <functional>
#include <iomanip>
//#include <typeinfo>
#include <chrono>
#include <random>
#include <numeric>
// input
#define INIT std::ios::sync_with_stdio(false);std::cin.tie(0);
#define VAR(type, ...)type __VA_ARGS__;MACRO_VAR_Scan(__VA_ARGS__);
template<typename T> void MACRO_VAR_Scan(T& t) { std::cin >> t; }
template<typename First, typename...Rest>void MACRO_VAR_Scan(First& first, Rest&...rest) { std::cin >> first; MACRO_VAR_Scan(rest...); }
#define VEC_ROW(type, n, ...)std::vector<type> __VA_ARGS__;MACRO_VEC_ROW_Init(n, __VA_ARGS__); for(int i=0; i<n; ++i){MACRO_VEC_ROW_Scan(i, __VA_ARGS__);}
template<typename T> void MACRO_VEC_ROW_Init(int n, T& t) { t.resize(n); }
template<typename First, typename...Rest>void MACRO_VEC_ROW_Init(int n, First& first, Rest&...rest) { first.resize(n); MACRO_VEC_ROW_Init(n, rest...); }
template<typename T> void MACRO_VEC_ROW_Scan(int p, T& t) { std::cin >> t[p]; }
template<typename First, typename...Rest>void MACRO_VEC_ROW_Scan(int p, First& first, Rest&...rest) { std::cin >> first[p]; MACRO_VEC_ROW_Scan(p, rest...); }
#define VEC(type, c, n) std::vector<type> c(n);for(auto& i:c)std::cin>>i;
#define MAT(type, c, m, n) std::vector<std::vector<type>> c(m, std::vector<type>(n));for(auto& r:c)for(auto& i:r)std::cin>>i;
// output
#define OUT(d) std::cout<<d;
#define FOUT(n, d) std::cout<<std::fixed<<std::setprecision(n)<<d;
#define SOUT(n, c, d) std::cout<<std::setw(n)<<std::setfill(c)<<d;
#define SP std::cout<<" ";
#define TAB std::cout<<"\t";
#define BR std::cout<<"\n";
#define SPBR(i, n) std::cout<<(i + 1 == n ? '\n' : ' ');
#define ENDL std::cout<<std::endl;
#define FLUSH std::cout<<std::flush;
#define SHOW(d) {std::cerr << #d << "\t:" << d << "\n";}
#define SHOWVECTOR(v) {std::cerr << #v << "\t:";for(const auto& xxx : v){std::cerr << xxx << " ";}std::cerr << "\n";}
#define SHOWVECTOR2(v) {std::cerr << #v << "\t:\n";for(const auto& xxx : v){for(const auto& yyy : xxx){std::cerr << yyy << " ";}std::cerr << "\n";}}
#define SHOWQUEUE(a) {auto tmp(a);std::cerr << #a << "\t:";while(!tmp.empty()){std::cerr << tmp.front() << " ";tmp.pop();}std::cerr << "\n";}
// utility
#define ALL(a) (a).begin(),(a).end()
#define FOR(i, a, b) for(int i=(a);i<(b);++i)
#define RFOR(i, a, b) for(int i=(b)-1;i>=(a);--i)
#define REP(i, n) for(int i=0;i<int(n);++i)
#define RREP(i, n) for(int i=int(n)-1;i>=0;--i)
#define FORLL(i, a, b) for(ll i=ll(a);i<ll(b);++i)
#define RFORLL(i, a, b) for(ll i=ll(b)-1;i>=ll(a);--i)
#define REPLL(i, n) for(ll i=0;i<ll(n);++i)
#define RREPLL(i, n) for(ll i=ll(n)-1;i>=0;--i)
#define IN(a, x, b) (a<=x && x<b)
template<typename T> inline T CHMAX(T& a, const T b) { return a = (a < b) ? b : a; }
template<typename T> inline T CHMIN(T& a, const T b) { return a = (a > b) ? b : a; }
#define EXCEPTION(msg) throw std::string("Exception : " msg " [ in ") + __func__ + " : " + std::to_string(__LINE__) + " lines ]"
#define TRY(cond, msg) try {if (cond) EXCEPTION(msg);}catch (std::string s) {std::cerr << s << std::endl;}
void CHECKTIME(std::function<void()> f) { auto start = std::chrono::system_clock::now(); f(); auto end = std::chrono::system_clock::now(); auto res = std::chrono::duration_cast<std::chrono::nanoseconds>((end - start)).count(); std::cerr << "[Time:" << res << "ns (" << res / (1.0e9) << "s)]\n"; }
// test
template<class T> std::vector<std::vector<T>> VV(int n) {
return std::vector<std::vector<T>>(n);
}
template<class T> std::vector<std::vector<T>> VV(int n, int m, T init = T()) {
return std::vector<std::vector<T>>(n, std::vector<T>(m, init));
}
template<typename S, typename T>
std::ostream& operator<<(std::ostream& os, std::pair<S, T> p) {
os << "(" << p.first << ", " << p.second << ")"; return os;
}
// type/const
#define int ll
using ll = long long;
using ull = unsigned long long;
using ld = long double;
using PAIR = std::pair<int, int>;
using PAIRLL = std::pair<ll, ll>;
constexpr int INFINT = 1 << 30; // 1.07x10^ 9
constexpr int INFINT_LIM = (1LL << 31) - 1; // 2.15x10^ 9
constexpr ll INFLL = 1LL << 60; // 1.15x10^18
constexpr ll INFLL_LIM = (1LL << 62) - 1 + (1LL << 62); // 9.22x10^18
constexpr double EPS = 1e-7;
constexpr int MOD = 1000000007;
constexpr double PI = 3.141592653589793238462643383279;
const int MAX_S = 10000000000;
int div3(int x) {
for (int i = 2; i * i * i <= MAX_S; ++i) {
int t = i * i * i;
while (x%t == 0) x /= t;
}
return x;
}
int inv(int x) {
return div3(x * x);
}
signed main() {
INIT;
VAR(int, n);
VEC(int, s, n);
std::map<int, int> cnt;
REP(i, n) {
s[i] = div3(s[i]);
++cnt[s[i]];
}
int ans = 0;
if (cnt[1] > 0) cnt[1] = 1;
for (auto x : cnt) {
int t = inv(x.first);
ans += std::max(x.second, cnt[t]);
cnt[x.first] = 0;
cnt[t] = 0;
}
OUT(ans)BR;
return 0;
}
Submission Info
Submission Time |
|
Task |
D - Anticube |
User |
satanic0258 |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
5474 Byte |
Status |
TLE |
Exec Time |
5256 ms |
Memory |
15360 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
0 / 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 |
TLE |
5256 ms |
15360 KB |
02.txt |
TLE |
5256 ms |
15360 KB |
03.txt |
TLE |
5256 ms |
15360 KB |
04.txt |
TLE |
5256 ms |
15360 KB |
05.txt |
TLE |
5256 ms |
15360 KB |
06.txt |
TLE |
5256 ms |
15360 KB |
07.txt |
TLE |
5256 ms |
15232 KB |
08.txt |
TLE |
5256 ms |
15360 KB |
09.txt |
TLE |
5256 ms |
15232 KB |
10.txt |
TLE |
5256 ms |
15360 KB |
11.txt |
AC |
3632 ms |
6656 KB |
12.txt |
AC |
3640 ms |
6656 KB |
13.txt |
AC |
4254 ms |
8320 KB |
14.txt |
AC |
4253 ms |
8320 KB |
15.txt |
AC |
4273 ms |
8320 KB |
16.txt |
AC |
4254 ms |
8320 KB |
17.txt |
AC |
2282 ms |
1024 KB |
18.txt |
AC |
2281 ms |
1024 KB |
19.txt |
AC |
2282 ms |
1024 KB |
20.txt |
AC |
2282 ms |
1024 KB |
21.txt |
TLE |
5246 ms |
12800 KB |
22.txt |
TLE |
5252 ms |
12800 KB |
23.txt |
TLE |
5251 ms |
12800 KB |
24.txt |
TLE |
5235 ms |
12800 KB |
25.txt |
TLE |
5226 ms |
12800 KB |
26.txt |
TLE |
5229 ms |
12672 KB |
27.txt |
TLE |
5256 ms |
12288 KB |
28.txt |
AC |
2264 ms |
1024 KB |
29.txt |
AC |
2261 ms |
1024 KB |
30.txt |
AC |
2246 ms |
1024 KB |
31.txt |
AC |
2260 ms |
1024 KB |
32.txt |
AC |
2260 ms |
1024 KB |
33.txt |
AC |
1 ms |
256 KB |
34.txt |
AC |
2304 ms |
1024 KB |
35.txt |
AC |
2267 ms |
1024 KB |
36.txt |
AC |
1 ms |
256 KB |
37.txt |
AC |
4005 ms |
8192 KB |
38.txt |
AC |
4011 ms |
8192 KB |
39.txt |
AC |
4014 ms |
8192 KB |
40.txt |
AC |
4025 ms |
8192 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 |
2 ms |
256 KB |
s2.txt |
AC |
1 ms |
256 KB |
s3.txt |
AC |
2 ms |
256 KB |