Submission #1528997


Source Code Expand

#include <cstdio>
#include <cstring>
#include <cmath>
#include <stdlib.h>
#include <queue>
#include <set>
#include <iostream>
#include <stack>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
//#include <assert.h>
//#include <sstream>
using namespace std;

#define ll long long
#define ull unsigned long long
#define pii pair <int, int>
#define piii pair <int, pii>
#define vi vector <int>
#define vl vector <ll>
#define pll pair <ll, ll> 
#define PI acos(-1)
#define MP make_pair
#define PB push_back
#define F first
#define S second
#define mem(a, b) memset(a, b, sizeof(a))
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) (a*(b/gcd(a,b)))
#define sqr(a) ((a)*(a))
#define inf 100000000
const int INF = 0x3f3f3f3f;
const long long LINF = 0x3f3f3f3f3f3f3f3fLL;
#define mod 1000000007
#define mod1 1000000007
#define mod2 1000000009
#define b1 43
#define b2 41
#define EPS 1e-9
//define harmonic(n) 0.57721566490153286l+log(n)
#define nl puts("")
#define odd(n) ((n)&1)
#define even(n) (!((n)&1))
#define vsort(v) sort(v.begin(), v.end())
#define lc (node<<1)
#define rc ((node<<1)|1)
//loop
#define rep(i, n) for(int i = 0; i < n; ++i)
#define REP(i, n) for(int i = 1; i <= n; ++i)
#define forn(i, j, n) for(int i = j; i <= n; ++i)
//input
#define si(a) scanf("%d", &a)
#define sii(a, b) scanf("%d%d", &a, &b)
#define siii(a, b, c) scanf("%d%d%d", &a, &b, &c)
#define sl(a) scanf("%lld", &a)
#define sll(a, b) scanf("%lld%lld", &a, &b)
#define slll(a, b, c) scanf("%lld%lld%lld", &a, &b, &c)
#define sd(a) scanf("%lf", &a)
#define sc(a) scanf("%c", &a)
#define sst(a) scanf("%s", a)
inline bool EQ(double a, double b) { return fabs(a-b) < 1e-9; }
//debug
#ifdef tahsin

template < typename F, typename S >
ostream& operator << ( ostream& os, const pair< F, S > & p ) {
	return os << "(" << p.first << ", " << p.second << ")";
}

template < typename T >
ostream &operator << ( ostream & os, const vector< T > &v ) {
	os << "{";
	for(auto it = v.begin(); it != v.end(); ++it) {
		if( it != v.begin() ) os << ", ";
		os << *it;
	}
    return os << "}";
}

template < typename T >
ostream &operator << ( ostream & os, const set< T > &v ) {
	os << "[";
	for(auto it = v.begin(); it != v.end(); ++it) {
		if( it != v.begin()) os << ", ";
		os << *it;
	}
    return os << "]";
}

template < typename F, typename S >
ostream &operator << ( ostream & os, const map< F, S > &v ) {
	os << "[";
	for(auto it = v.begin(); it != v.end(); ++it) {
		if( it != v.begin() ) os << ", ";
		os << it -> first << " = " << it -> second ;
	}
    return os << "]";
}

#define dbg(args...) do {cerr << #args << " : "; faltu(args); } while(0)

clock_t tStart = clock();
#define timeStamp dbg("Execution Time: ", (double)(clock() - tStart)/CLOCKS_PER_SEC)

void faltu () { cerr << endl; }

template <typename T>
void faltu( T a[], int n ) {
	for(int i = 0; i < n; ++i) cerr << a[i] << ' ';
	cerr << endl;
}

template <typename T, typename ... hello>
void faltu( T arg, const hello &... rest) { cerr << arg << ' '; faltu(rest...); }

#else
#define dbg(args...)
#endif

ll add(ll a, ll b, ll m = mod) {
	ll ret = a+b;
	if(ret >= m) ret -= m;
	return ret;
}

ll subtract(ll a, ll b, ll m = mod) {
	ll ret = a-b;
	if(ret < 0) ret += m;
	return ret;
}

ll mult(ll a, ll b, ll m = mod) {
	ll ret = a*b;
	if(ret >= m) ret %= m;
	return ret;
}

ll bigmod(ll a, ll b, ll m = mod) {
	ll ret = 1;
	while(b) {
		if(b&1) ret = mult(ret, a, m);
		b >>= 1; a = mult(a, a, m);
	}
	return ret;
}

ll inverse(ll n, ll m = mod) { return bigmod(n, mod-2, m); }

/*
bool base[1000010];
vi primes;
void sieve(int mx) {
	mx += 10;
	int x = sqrt(mx);
	for(int i = 3; i <= x; i += 2) if(base[i] == 0) for(int j = i*i, k = i<<1; j < mx; j += k) base[j] = 1;
	primes.PB(2);
	for(int i = 3; i < mx; i += 2) if(base[i] == 0) primes.PB(i);
}
*/


//Direction Array 
//int fx[]={1, -1, 0, 0}; int fy[]={0, 0, 1, -1};
//int fx[]={0, 0, 1, -1, -1, 1, -1, 1}; int fy[]={-1, 1, 0, 0, 1, 1, -1, -1};

//bit manipulation
/*
bool checkBit(int n, int i) { return (n&(1<<i)); }
int setBit(int n, int i) { return (n|(1<<i)); }
int resetBit(int n, int i) { return (n&(~(1<<i))); }
*/
//end of template


#define mxn 100010
int a[mxn];

int main () {
#ifdef tahsin
	freopen("in", "r", stdin);
//	freopen("out", "w", stdout);
#endif
	int n;

	while(si(n) == 1) {
		rep(i, n) si(a[i]);

		unordered_map <int, int> cnt;

		vi v;
		rep(i, n) {
			++cnt[a[i]];
			if(cnt[a[i]] % 2 == 0) v.PB(a[i]);
		}

		sort(v.rbegin(), v.rend());

		if(v.size() < 2) puts("0");
		else printf("%lld\n", (ll) v[0]*v[1]);
	}

//	timeStamp;
	return 0;
}

Submission Info

Submission Time
Task C - Make a Rectangle
User tahsynx
Language C++14 (GCC 5.4.1)
Score 300
Code Size 4795 Byte
Status AC
Exec Time 29 ms
Memory 4772 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:188:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   rep(i, n) si(a[i]);
                     ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 15
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt
All sample1.txt, sample2.txt, sample3.txt, 1.txt, 2.txt, 3.txt, 4.txt, 5.txt, 6.txt, 7.txt, 8.txt, 9.txt, sample1.txt, sample2.txt, sample3.txt
Case Name Status Exec Time Memory
1.txt AC 29 ms 4108 KiB
2.txt AC 9 ms 640 KiB
3.txt AC 29 ms 4772 KiB
4.txt AC 25 ms 2700 KiB
5.txt AC 10 ms 640 KiB
6.txt AC 19 ms 1024 KiB
7.txt AC 18 ms 1024 KiB
8.txt AC 8 ms 640 KiB
9.txt AC 15 ms 2444 KiB
sample1.txt AC 1 ms 256 KiB
sample2.txt AC 1 ms 256 KiB
sample3.txt AC 1 ms 256 KiB