#include <bits/stdc++.h> using namespace std; #define VAR(a,b) __typeof(b) a=(b) #define FOR(i,a,b) for (int _n(b), i(a); i < _n; i++) #define FORD(i,a,b) for(int i=(a),_b=(b);i>=_b;--i) #define FOREACH(it,c) for(VAR(it,(c).begin());it!=(c).end();++it) #define REP(i,n) FOR(i,0,n) #define ALL(c) (c).begin(), (c).end() #define SORT(c) sort(ALL(c)) #define REVERSE(c) reverse(ALL(c)) #define UNIQUE(c) SORT(c),(c).resize(unique(ALL(c))-(c).begin()) #define INF 1000000000 #define X first #define Y second #define pb push_back #define SZ(c) (c).size() typedef pair<int, int> PII; typedef vector<int> VI; typedef vector<PII> VPII; typedef vector<VI> VVI; typedef long long LL; #define MOD 1000000007 const int number_of_tits=500005; int n,a[number_of_tits]; int relatively; LL bit[number_of_tits]; void update_the_bit(int x) { while(x<number_of_tits) { bit[x]+=1; x+=x&-x; } } LL query_the_bit(int x) { LL ans=0; while(x>0) { ans+=bit[x]; x-=x&-x; } return ans; } int main() { cin>>n; LL to=0; int abbbrakadabra=0,abbbrakadabra_ka_jaddu=-1; REP(i,n) { cin>>a[i]; to=to+(LL)(query_the_bit(number_of_tits)-query_the_bit(a[i])); update_the_bit(a[i]); relatively=abs(a[i]-i); if(abbbrakadabra<relatively) { abbbrakadabra=relatively; abbbrakadabra_ka_jaddu=i; } } memset(bit,0,sizeof(bit)); int sanitary_pads=-1,maxy=-1; LL maxi=to; update_the_bit(a[abbbrakadabra_ka_jaddu]); for(int i=abbbrakadabra_ka_jaddu+1; i<n; i++) { update_the_bit(a[i]); LL temporary_upay=to-(query_the_bit(number_of_tits)-query_the_bit(a[i]))+(query_the_bit(a[i]-1)); LL xx=query_the_bit(number_of_tits)-query_the_bit(a[abbbrakadabra_ka_jaddu]); if(a[abbbrakadabra_ka_jaddu]<a[i]) xx--; LL yy=query_the_bit(a[abbbrakadabra_ka_jaddu]-1); if(a[abbbrakadabra_ka_jaddu]>a[i]) yy--; temporary_upay=temporary_upay+xx-yy; if(maxi>temporary_upay) { maxi=temporary_upay; sanitary_pads=abbbrakadabra_ka_jaddu; maxy=i; } } memset(bit,0,sizeof(bit)); update_the_bit(a[abbbrakadabra_ka_jaddu]); for(int i=abbbrakadabra_ka_jaddu-1; i>=0; i--) { update_the_bit(a[i]); LL temporary_upay=to-(query_the_bit(number_of_tits)-query_the_bit(a[abbbrakadabra_ka_jaddu]))+(query_the_bit(a [abbbrakadabra_ka_jaddu]-1)); LL xx=query_the_bit(number_of_tits)-query_the_bit(a[i]); if(a[abbbrakadabra_ka_jaddu]>a[i]) xx--; LL yy=query_the_bit(a[i]-1); if(a[abbbrakadabra_ka_jaddu]<a[i]) yy--; temporary_upay=temporary_upay+xx-yy; if(maxi>=temporary_upay) { maxi=temporary_upay; sanitary_pads=abbbrakadabra_ka_jaddu; maxy=i; } } if(sanitary_pads!=-1) printf("%d %d\n",min(sanitary_pads,maxy)+1,max(sanitary_pads,maxy)+1); else printf("Cool Array\n"); }