forked from kothariji/competitive-programming
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPerfect_Arrays.cpp
66 lines (55 loc) · 1.82 KB
/
Perfect_Arrays.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*
* कर्मणये वाधिकारस्ते मां फलेषु कदाचन ।
* मां कर्मफलहेतुर्भू: मांते संङगोस्त्वकर्मणि ॥
*/
#include <bits/stdc++.h>
using namespace std;
#define bug(...) __f (#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1>
void __f(const char* name, Arg1&& arg1) { cout << name << " : " << arg1 << endl; }
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args) {
const char* comma = strchr(names + 1, ',');
cout.write(names, comma - names) << " : " << arg1 << " | "; __f(comma + 1, args...);
}
/*
* Given an array of size N and you have to tell whether the array is perfect or not. An array is said to be perfect if it's reverse array matches the original array. If the array is perfect then print "PERFECT" else print "NOT PERFECT".
*/
bool IsPerfect(int arr[], int n) {
int Arr[n];
for (int i = 0; i < n; i++) {
Arr[i] = arr[n - 1 - i];
}
for (int i = 0; i < n; i++) {
if (arr[i] != Arr[i]) {
return false;
}
}
return true;
}
void solve() {
int n;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
if (IsPerfect(arr, n)) {
cout << "PERFECT" << endl;
} else {
cout << "NOT PERFECT" << endl;
}
}
int32_t main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#ifndef ONLINE_JUDGE
freopen("/home/aman/Desktop/30 Days of Code/input.txt", "r", stdin);
freopen("/home/aman/Desktop/30 Days of Code/output.txt", "w", stdout);
#endif
clock_t z = clock();
int t = 1;
cin >> t;
while (t--) solve();
cerr << "Run Time : " << ((double)(clock() - z) / CLOCKS_PER_SEC) << endl;
return 0;
}