Submission #1840448


Source Code Expand

#define _CRT_SECURE_NO_WARNINGS
//#pragma comment(linker, "/STACK:128777216")
#include <iostream>
#include <sstream>
#include <iomanip>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <cstring>
#include <vector>
#include <list>
#include <queue>
#include <deque>
#include <stack>
#include <map>
#include <set>
#include <algorithm>
#include <iterator>
#include <bitset>
#include <ctime>
#include<complex>
using namespace std;

#define FOR(i,a,b) for (int i = (a); i < (b); i++)
#define RFOR(i,b,a) for (int i = (b)-1; i >= (a); i--)
#define ITER(it,a) for (__typeof(a.begin()) it = a.begin(); it != a.end(); it++)
#define FILL(a,value) memset(a, value, sizeof(a))

#define SZ(a) (int)a.size()
#define ALL(a) a.begin(), a.end()
#define PB push_back
#define MP make_pair

typedef long long LL;
typedef vector<int> VI;
typedef pair<int, int> PII;
typedef pair<long long, long long> PLL;


const double PI = acos(-1.0);
const int INF = 1000 * 1000 * 1000 + 7;
const LL LINF = INF * (LL)INF;

const int MAX = 2000 + 47;
const int MOD = 1000 * 1000 * 1000 + 7;

//#define DEBUG
int A[MAX];
int B[MAX];
int C[MAX];
int IND[MAX];

vector<int> g[MAX];
int U[MAX];
vector<int> L[MAX];
vector<int> P;
int sz;

int gcd(int a, int b)
{
	return b == 0 ? a : gcd(b, a % b);
}

int merge(int v, vector<int> A)
{
	if (v != -1)
	{
		L[sz].push_back(v);
	}

	P.assign(SZ(A), 0);
	while (1)
	{
		int ind = -1;
		FOR(i, 0, SZ(A))
		{
			if (P[i] < SZ(L[A[i]]))
			{
				ind = i;
				break;
			}
		}

		if (ind == -1) break;
		FOR(i, 0, SZ(A))
		{
			if (P[i] < SZ(L[A[i]]) && L[A[i]][P[i]] > L[A[ind]][P[ind]])
			{
				ind = i;
			}
		}

		L[sz].push_back(L[A[ind]][P[ind]]);
		P[ind]++;
	}

	sz++;
	return sz - 1;
}

int dfs(int v)
{
	U[v] = 1;
	vector<int> A;
	FOR(i, 0, SZ(g[v]))
	{
		int to = g[v][i];
		if (U[to]) continue;
		A.push_back(dfs(to));
	}

	return merge(v, A);
}

int main()
{
	//freopen("in.txt", "r", stdin);
	//freopen("out.txt", "w", stdout);
	//ios::sync_with_stdio(false); cin.tie(0);
	int n;
	cin >> n;
	FOR(i, 0, n)
	{
		cin >> A[i];
		B[i] = A[i];
	}

	sort(B, B + n);
	int sz = unique(B, B + n) - B;
	FOR(i, 0, n)
	{
		int ind = lower_bound(B, B + sz, A[i]) - B;
		IND[i] = ind;
		C[ind]++;
	}

	FOR(i, 0, n)
	{
		FOR(j, 0, n)
		{
			if (i == j) continue;
			if (gcd(A[i], A[j]) == 1) continue;
			g[IND[i]].push_back(IND[j]);
		}
	}

	FOR(i, 0, n)
	{
		sort(ALL(g[i]));
	}

#ifdef DEBUG
	cout << "B=" << endl;
	FOR(i, 0, sz)
	{
		cout << B[i] << " ";
	}
	cout << endl;
	cout << "g=" << endl;
	FOR(i, 0, sz)
	{
		cout << i << ": ";
		FOR(j, 0, SZ(g[i])) cout << g[i][j] << " ";
		cout << endl;
	}
#endif
	vector<int> D;
	FOR(i, 0, sz)
	{
		if (!U[i])
		{
			D.push_back(dfs(i));
		}
	}

	int p = merge(-1,D);
	FOR(i, 0, SZ(L[p]))
	{
		int ind = L[p][i];
		FOR(j, 0, C[ind])
		{
			cout << B[ind] << " ";
		}
	}

	cout << endl;
}

Submission Info

Submission Time
Task E - Rearranging
User vjudge1
Language C++14 (Clang 3.8.0)
Score 0
Code Size 2866 Byte
Status WA
Exec Time 579 ms
Memory 26496 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 1600
Status
AC × 2
AC × 23
WA × 26
Set Name Test Cases
Sample sample1.txt, sample2.txt
All sample1.txt, sample2.txt, in1.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in2.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in3.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in4.txt, in40.txt, in41.txt, in42.txt, in43.txt, in44.txt, in45.txt, in5.txt, in6.txt, in7.txt, in8.txt, in9.txt, sample1.txt, sample2.txt
Case Name Status Exec Time Memory
in1.txt AC 575 ms 18688 KB
in10.txt AC 579 ms 19328 KB
in11.txt WA 457 ms 11904 KB
in12.txt WA 460 ms 12032 KB
in13.txt WA 457 ms 12032 KB
in14.txt WA 459 ms 12032 KB
in15.txt WA 460 ms 12160 KB
in16.txt WA 545 ms 26240 KB
in17.txt WA 545 ms 26496 KB
in18.txt WA 543 ms 26240 KB
in19.txt WA 545 ms 26240 KB
in2.txt AC 577 ms 18816 KB
in20.txt WA 545 ms 26240 KB
in21.txt AC 339 ms 512 KB
in22.txt AC 340 ms 512 KB
in23.txt AC 341 ms 512 KB
in24.txt AC 339 ms 512 KB
in25.txt AC 343 ms 512 KB
in26.txt WA 458 ms 11904 KB
in27.txt WA 459 ms 12032 KB
in28.txt WA 455 ms 11904 KB
in29.txt WA 460 ms 12032 KB
in3.txt AC 574 ms 18688 KB
in30.txt WA 459 ms 12032 KB
in31.txt AC 1 ms 384 KB
in32.txt AC 1 ms 384 KB
in33.txt AC 1 ms 384 KB
in34.txt AC 395 ms 512 KB
in35.txt AC 394 ms 512 KB
in36.txt WA 486 ms 13568 KB
in37.txt WA 486 ms 13568 KB
in38.txt WA 487 ms 13568 KB
in39.txt WA 488 ms 13440 KB
in4.txt AC 575 ms 18304 KB
in40.txt WA 485 ms 13440 KB
in41.txt WA 488 ms 13568 KB
in42.txt WA 488 ms 13440 KB
in43.txt WA 485 ms 13440 KB
in44.txt WA 487 ms 13440 KB
in45.txt WA 488 ms 13568 KB
in5.txt WA 573 ms 18688 KB
in6.txt AC 576 ms 18944 KB
in7.txt AC 576 ms 19200 KB
in8.txt AC 578 ms 19072 KB
in9.txt AC 575 ms 18560 KB
sample1.txt AC 1 ms 384 KB
sample2.txt AC 1 ms 384 KB