|
1 | 1 | /*Made by Shivam Solanki*/
|
2 |
| -#include<bits/stdc++.h> |
3 |
| -#pragma GCC optimize ("Ofast") |
| 2 | +#include <bits/stdc++.h> |
| 3 | +#pragma GCC optimize("Ofast") |
4 | 4 | using namespace std;
|
5 | 5 | #define DEBUG(x) cerr << '>' << #x << ':' << x << endl;
|
6 | 6 | #define ll long long int
|
7 | 7 | #define endl '\n'
|
8 | 8 | typedef vector<int> vi;
|
9 | 9 | typedef vector<ll> vll;
|
10 | 10 | typedef vector<vll> vvl;
|
11 |
| -typedef pair<int,int> pii; |
12 |
| -typedef pair<ll,ll> pll; |
| 11 | +typedef pair<int, int> pii; |
| 12 | +typedef pair<ll, ll> pll; |
13 | 13 | typedef vector<vi> vvi;
|
14 | 14 | typedef vector<bool> vb;
|
15 | 15 | typedef vector<pii> vp;
|
16 | 16 | typedef vector<pll> vpll;
|
17 |
| -typedef map<int,int> mii; |
18 |
| -typedef map<ll,ll> mll; |
| 17 | +typedef map<int, int> mii; |
| 18 | +typedef map<ll, ll> mll; |
19 | 19 | typedef set<int> sii;
|
20 | 20 | typedef set<ll> sll;
|
21 | 21 | typedef queue<int> qii;
|
22 | 22 | typedef priority_queue<int> pq;
|
23 |
| -typedef unordered_map<int,int> umii; |
24 |
| -typedef unordered_map<ll,ll> umll; |
25 |
| -#define all(x) x.begin(),x.end() |
26 |
| -#define rep(i,k,n) for (int i = k; i < n; ++i) |
27 |
| -#define repr(i,k,n) for (int i = n; i>=k; --i) |
28 |
| -#define repll(i,k,n) for (ll i = k; i < n; ++i) |
| 23 | +typedef unordered_map<int, int> umii; |
| 24 | +typedef unordered_map<ll, ll> umll; |
| 25 | +#define all(x) x.begin(), x.end() |
| 26 | +#define rep(i, k, n) for (int i = k; i < n; ++i) |
| 27 | +#define repr(i, k, n) for (int i = n; i >= k; --i) |
| 28 | +#define repll(i, k, n) for (ll i = k; i < n; ++i) |
29 | 29 | #define pb push_back
|
30 | 30 | #define mp make_pair
|
31 | 31 | #define gcd __gcd
|
32 | 32 | #define F first
|
33 | 33 | #define S second
|
34 |
| -#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); |
35 |
| -const int INF = 1e9+5; |
36 |
| -const int MOD = 1e9+7; |
37 |
| -double pi = 2 * acos(0.0); |
| 34 | +#define fastio \ |
| 35 | + ios_base::sync_with_stdio(false); \ |
| 36 | + cin.tie(NULL); \ |
| 37 | + cout.tie(NULL); |
| 38 | +const int INF = 1e9 + 5; |
| 39 | +const int MOD = 1e9 + 7; |
| 40 | +double pi = 2 * acos(0.0); |
38 | 41 |
|
39 | 42 | //Question Link: https://codeforces.com/contest/887/problem/C
|
40 | 43 |
|
41 | 44 | vi cube(25);
|
42 | 45 | vvi sides{
|
43 |
| - {1,3,5,7,9,11,24,22}, |
44 |
| - {2,4,6,8,10,12,23,21}, |
45 |
| - {13,14,5,6,17,18,21,22}, |
46 |
| - {15,16,7,8,19,20,23,24}, |
47 |
| - {1,2,18,20,12,11,15,13}, |
48 |
| - {3,4,17,19,10,9,16,14} |
49 |
| -}; |
| 46 | + {1, 3, 5, 7, 9, 11, 24, 22}, |
| 47 | + {2, 4, 6, 8, 10, 12, 23, 21}, |
| 48 | + {13, 14, 5, 6, 17, 18, 21, 22}, |
| 49 | + {15, 16, 7, 8, 19, 20, 23, 24}, |
| 50 | + {1, 2, 18, 20, 12, 11, 15, 13}, |
| 51 | + {3, 4, 17, 19, 10, 9, 16, 14}}; |
50 | 52 |
|
51 |
| -bool check_cube(){ |
52 |
| - if( |
53 |
| - (cube[1]==cube[2] and cube[3]==cube[4] and cube[1]==cube[3]) |
54 |
| - and (cube[13]==cube[14] and cube[15]==cube[16] and cube[13]==cube[15]) |
55 |
| - and (cube[9]==cube[10] and cube[11]==cube[12] and cube[9]==cube[11]) |
56 |
| - and (cube[5]==cube[6] and cube[7]==cube[8] and cube[5]==cube[8]) |
57 |
| - and (cube[17]==cube[18] and cube[19]==cube[20] and cube[17]==cube[20]) |
58 |
| - and (cube[21]==cube[22] and cube[23]==cube[24] and cube[21]==cube[23]) |
59 |
| - ) return 1; |
| 53 | +bool check_cube() { |
| 54 | + if ( |
| 55 | + (cube[1] == cube[2] and cube[3] == cube[4] and cube[1] == cube[3]) and (cube[13] == cube[14] and cube[15] == cube[16] and cube[13] == cube[15]) and (cube[9] == cube[10] and cube[11] == cube[12] and cube[9] == cube[11]) and (cube[5] == cube[6] and cube[7] == cube[8] and cube[5] == cube[8]) and (cube[17] == cube[18] and cube[19] == cube[20] and cube[17] == cube[20]) and (cube[21] == cube[22] and cube[23] == cube[24] and cube[21] == cube[23])) return 1; |
60 | 56 | return 0;
|
61 | 57 | }
|
62 | 58 |
|
63 |
| -void right_shift(vi &side){ |
64 |
| - int x=cube[side[0]],y=cube[side[1]]; |
65 |
| - for(int i=2;i<8;i+=2) |
66 |
| - swap(cube[side[(i)%8]],x),swap(cube[side[(i+1)%8]],y); |
67 |
| - cube[side[0]]=x,cube[side[1]]=y; |
| 59 | +void right_shift(vi &side) { |
| 60 | + int x = cube[side[0]], y = cube[side[1]]; |
| 61 | + for (int i = 2; i < 8; i += 2) |
| 62 | + swap(cube[side[(i) % 8]], x), swap(cube[side[(i + 1) % 8]], y); |
| 63 | + cube[side[0]] = x, cube[side[1]] = y; |
68 | 64 | }
|
69 | 65 |
|
70 |
| -void left_shift(vi &side){ |
71 |
| - int x=cube[side[0]],y=cube[side[1]]; |
72 |
| - for(int i=8;i>=2;i-=2) |
73 |
| - swap(cube[side[(i)%8]],x),swap(cube[side[(i+1)%8]],y); |
74 |
| - cube[side[0]]=x,cube[side[1]]=y ; |
| 66 | +void left_shift(vi &side) { |
| 67 | + int x = cube[side[0]], y = cube[side[1]]; |
| 68 | + for (int i = 8; i >= 2; i -= 2) |
| 69 | + swap(cube[side[(i) % 8]], x), swap(cube[side[(i + 1) % 8]], y); |
| 70 | + cube[side[0]] = x, cube[side[1]] = y; |
75 | 71 | }
|
76 | 72 |
|
77 |
| -void solve(){ |
78 |
| - rep(i,1,25) cin>>cube[i]; |
79 |
| - rep(i,0,6){ |
| 73 | +void solve() { |
| 74 | + rep(i, 1, 25) cin >> cube[i]; |
| 75 | + rep(i, 0, 6) { |
80 | 76 | left_shift(sides[i]);
|
81 |
| - if(check_cube()){ |
82 |
| - cout<<"YES\n"; |
| 77 | + if (check_cube()) { |
| 78 | + cout << "YES\n"; |
83 | 79 | return;
|
84 | 80 | }
|
85 | 81 | right_shift(sides[i]);
|
86 |
| - right_shift(sides[i]); |
87 |
| - if(check_cube()){ |
88 |
| - cout<<"YES\n"; |
| 82 | + right_shift(sides[i]); |
| 83 | + if (check_cube()) { |
| 84 | + cout << "YES\n"; |
89 | 85 | return;
|
90 | 86 | }
|
91 | 87 | left_shift(sides[i]);
|
92 | 88 | }
|
93 |
| - cout<<"NO\n"; |
| 89 | + cout << "NO\n"; |
94 | 90 | }
|
95 | 91 |
|
96 |
| -int main(){ |
97 |
| - // #ifndef ONLINE_JUDGE |
98 |
| - // freopen("input.txt", "r", stdin); |
99 |
| - // freopen("output.txt", "w", stdout); |
100 |
| - // #endif |
| 92 | +int main() { |
| 93 | + // #ifndef ONLINE_JUDGE |
| 94 | + // freopen("input.txt", "r", stdin); |
| 95 | + // freopen("output.txt", "w", stdout); |
| 96 | + // #endif |
101 | 97 | fastio;
|
102 |
| - int t=1; |
| 98 | + int t = 1; |
103 | 99 | // cin>>t;
|
104 |
| - while(t--) |
| 100 | + while (t--) |
105 | 101 | solve();
|
106 | 102 | return 0;
|
107 | 103 | }
|
0 commit comments