Topic links: http://codeforces.com/problemset/problem/558/B
Meaning of the questions:
Degree with a beautiful sequence in which a maximum number of repetitions concerned. The shortest sequence (continuous period) so that it is equal to the beautiful degree prosequence.
1 #include <iostream> 2 #include <algorithm> 3 #include <stdlib.h> 4 #include <string> 5 #include <string.h> 6 #include <set> 7 #include <queue> 8 #include <stdbool.h> 9 10 #define LL long long 11 using namespace std; 12 const int maxn = 1e5 + 10; 13 14 15 struct Node{ 16 int val; 17 int pos; 18 }arr[maxn]; 19 20 bool cmp(Node a,Node b){ 21 if (a.val != b.val){ 22 return a.val < b.val; 23 } 24 else{ 25 return a.pos < b.pos; 26 } 27 } 28 29 30 int main(){ 31 int n; 32 scanf("%d",&n); 33 for (int i=1;i<=n;i++){ 34 scanf("%d",&arr[i].val); 35 arr[i].pos = i; 36 } 37 sort(arr+1,arr+1+n,cmp); 38 int ansl,ansr; 39 int start = 1; 40 int len = 0,cnt = 1; 41 for (int i=2;i<=n;i++){ 42 if(Arr [i] == Kvl Arr [I- 1 ] Kvl) { 43 Cnt ++ ; 44 } 45 Else { 46 If (Chnt> len) { 47 Ansl = Arr [START] Kpos; 48 Ansr = Arr [I- 1 ] Kpos; 49 len = Chnt; 50 } 5l Else If (Chnt == len) { 52 If (Arr [I- 1 ] Kpos-Arr [START] Kpos + 1 <Ansr-Ansl + 1 ) { 53 Ansl = Arr [START] Kpos; 54 Ansr = Arr [I- 1 ] Kpos; 55 } 56 } 57 Start = e; 58 Cnt = L ; 59 } 60 } 6l If (Chnt> len) { 62 Ansl = Arr [START] Kpos; 63 Ansr = Arr [not] Kpos; 64 } 65 Else If (Chnt == len) { 66 If(Arr [not] Kpos-Arr [START] Kpos + 1 <Ansr-Ansl + 1 ) { 67 Ansl = Arr [START] Kpos; 68 Ansr = Arr [not] Kpos; 69 } 70 } 7l Printf ( " % d% d \ n " , Ansl, Ansr); 72 return 0 ; 73 }