#include <cstdio> #include <algorithm> #include <vector> #include <cstring> using namespace std; const int maxN = 5e5+10; const int base = 5; typedef int array1[maxN]; int N,kqx,kqy; array1 S,F,A,B; bool dda[maxN],ddb[maxN]; vector <int> Wa,Wb; long long sum; int BIT(int x) { int sum = 0; for (int i=x; i; i -= i&(-i)) sum += F[i]; return sum; } void Update(int x) { for (int i=x; i <= N; i += i&(-i)) F[i]++; } long long makeBIT() { int W = 0; memset(F,0,sizeof(F)); for (int i=N; i >= 1; i--) { A[i] = BIT(S[i]); W += A[i]; Update(S[i]); } return W; } void init() { sum = makeBIT(); memset(F,0,sizeof(F)); for (int i=1; i <= N; i++) { Update(S[i]); B[i] = i-BIT(S[i]); } for (int k=1; k <= base; k++) { int vt = 0; for (int i=1; i <= N; i++) if (!dda[i] && A[i] > A[vt]) vt = i; if (vt > 0) Wa.push_back(vt), dda[vt] = 1; vt = 0; for (int i=1; i <= N; i++) if (!ddb[i] && B[i] > B[vt]) vt = i; if (vt > 0) Wb.push_back(vt), ddb[vt] = 1; } } int main() { //freopen("wcs5.inp","r",stdin); //freopen("wcs5.out","w",stdout); scanf("%d",&N); for (int i=1; i <= N; i++) scanf("%d",&S[i]); init(); if (! Wa.size() || !Wb.size()) puts("Cool Array"); else { for (int i=0; i < Wa.size(); i++) for (int j=0; j < Wb.size(); j++) { swap(S[Wa[i]],S[Wb[j]]); int w = makeBIT(); if (w < sum) kqx = Wa[i], kqy = Wb[j], sum = w; swap(S[Wa[i]],S[Wb[j]]); } printf("%d %d",kqx,kqy); } }