Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 3391fdb

Browse files
recovery
1 parent f5c23c1 commit 3391fdb

File tree

2 files changed

+135
-0
lines changed

2 files changed

+135
-0
lines changed

‎a‎

79.9 KB
Binary file not shown.
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
#include <bits/stdc++.h>
2+
3+
using namespace std;
4+
5+
// Type definitions
6+
typedef long long ll;
7+
typedef long double ld;
8+
typedef pair<int, int> pii;
9+
typedef pair<ll, ll> pll;
10+
typedef vector<int> vi;
11+
typedef vector<ll> vl;
12+
typedef vector<pii> vpii;
13+
typedef vector<pll> vpll;
14+
typedef vector<vi> vvi;
15+
typedef vector<vl> vvl;
16+
17+
// Macros
18+
#define nline "\n"
19+
#define all(x) (x).begin(), (x).end()
20+
#define rall(x) (x).rbegin(), (x).rend()
21+
#define sz(x) (int)(x).size()
22+
#define pb push_back
23+
#define mp make_pair
24+
#define F first
25+
#define S second
26+
#define forn(i, n) for (int i = 0; i < int(n); i++)
27+
#define forr(i, a, b) for (int i = a; i <= b; i++)
28+
#define ford(i, a, b) for (int i = a; i >= b; i--)
29+
#define elasped_time 1.0 * clock() / CLOCKS_PER_SEC
30+
31+
// Constants
32+
const int MOD = 1e9 + 7;
33+
const ll INF = 1e18;
34+
const double EPS = 1e-9;
35+
const double PI = acos(-1);
36+
37+
ll mod_add(ll a, ll b, ll m = MOD) { return ((a % m) + (b % m)) % m; }
38+
ll mod_sub(ll a, ll b, ll m = MOD) { return ((a % m) - (b % m) + m) % m; }
39+
ll mod_mul(ll a, ll b, ll m = MOD) { return ((a % m) * (b % m)) % m; }
40+
41+
ll mod_pow(ll base, ll exp, ll m = MOD)
42+
{
43+
ll res = 1;
44+
base %= m;
45+
while (exp > 0)
46+
{
47+
if (exp & 1)
48+
res = mod_mul(res, base, m);
49+
base = mod_mul(base, base, m);
50+
exp >>= 1;
51+
}
52+
return res;
53+
}
54+
55+
ll mod_inv(ll a, ll m = MOD)
56+
{
57+
return mod_pow(a, m - 2, m); // Only works if m is prime
58+
}
59+
60+
ll mod_div(ll a, ll b, ll m = MOD)
61+
{
62+
return mod_mul(a, mod_inv(b, m), m);
63+
}
64+
65+
// Binary exponentiation (for non-modular calculations)
66+
ll binpow(ll base, ll exp)
67+
{
68+
ll res = 1;
69+
while (exp > 0)
70+
{
71+
if (exp & 1)
72+
res *= base;
73+
base *= base;
74+
exp >>= 1;
75+
}
76+
return res;
77+
}
78+
79+
void solve()
80+
{
81+
int n;
82+
cin >> n;
83+
84+
int biggest = INT_MIN;
85+
vi arr(n, 0);
86+
forn(i, n)
87+
{
88+
cin >> arr[i];
89+
biggest = max(arr[i], biggest);
90+
}
91+
92+
if (count(all(arr), biggest) == n)
93+
{
94+
cout << "No";
95+
}
96+
else
97+
{
98+
cout << "Yes" << nline;
99+
forn(i, n)
100+
cout
101+
<< (arr[i] == biggest ? 1 : 2) << " ";
102+
}
103+
104+
cout << nline;
105+
}
106+
107+
int main()
108+
{
109+
110+
ios_base::sync_with_stdio(0);
111+
cin.tie(0);
112+
cout.tie(0);
113+
114+
#ifndef ONLINE_JUDGE
115+
freopen("./outputs/input.txt", "r", stdin);
116+
freopen("./outputs/output.txt", "w", stdout);
117+
#endif
118+
119+
int t;
120+
cin >> t;
121+
while (t--)
122+
solve();
123+
124+
return 0;
125+
}
126+
// Explanation
127+
/*
128+
% Find the largest integer in the array.
129+
% If all elements are equal to this largest integer,
130+
% it is impossible to segregate the array into two parts:
131+
% - Part B: numbers smaller than the largest integer
132+
% - Part C: numbers equal to the largest integer
133+
% Otherwise, output "Yes" and assign 1 to elements equal to the largest,
134+
% and 2 to the rest.
135+
*/

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /