Submission #82235

# Submission time Handle Problem Language Result Execution time Memory
82235 2018-10-29T15:00:35 Z Leonardo_Paes Doktor (COCI17_doktor) C++11
60 / 100
39 ms 1212 KB
#include <bits/stdc++.h>

using namespace std;

#define MAXN 100100

int vet[MAXN], pos[MAXN], ans[MAXN], pre[MAXN];

pair<int,int> ans2[MAXN];
int main(){

    int n;

    cin >> n;

    for(int i=1; i<=n; i++){
        cin >> vet[i];
        pos[vet[i]]=i;
    }

    if(n>5000){
        cout << 1 << " " << 1 << endl;
      return 0;
    }

    for(int i=1; i<=n; i++){
        if(vet[i]==i){
            pre[i]++;
        }
        pre[i]+=pre[i-1];
        //cout << pre[i] << " ";
    }

    for(int i=1; i<=n; i++){
        if(pos[i] == i){
            ans[i] = pre[n];
            ans2[i] = {i,i};
        }
        if(pos[i] < i){
            int atual = 0;
            for(int x = pos[i], u=0; x<=i; x++, u++){
                if(vet[x]+u==vet[pos[i]]){
                    atual++;
                }
            }
            ans2[i] = {i, vet[i]};
            ans[i]=atual;
            // antes
            ans[i]+=pre[pos[i]-1];
            //depois
            ans[i]+=pre[n]-pre[i];
        }
        if(pos[i] > i){
            int atual = 0;
            for(int x = pos[i], u=0; x>=i; x--, u++){
                if(vet[x]-u==vet[pos[i]]){
                    atual++;
                }
            }
            ans2[i] = {vet[i], i};
            ans[i]=atual;
            //antes
            ans[i]+=pre[i-1];
            //depois
            ans[i]+=pre[n]-pre[pos[i]];
        }
    }
    int resp = 1;
    int idx;
    for(int i=1; i<=n; i++){
        if(ans[i]>resp){
            resp=ans[i];
            idx = i;
        }
    }

    cout << ans2[idx].first << " " << ans2[idx].second << endl;
}

Compilation message

doktor.cpp: In function 'int main()':
doktor.cpp:77:49: warning: 'idx' may be used uninitialized in this function [-Wmaybe-uninitialized]
     cout << ans2[idx].first << " " << ans2[idx].second << endl;
                                                 ^~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 448 KB Output is correct
2 Correct 2 ms 472 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 640 KB Output is correct
2 Correct 4 ms 672 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 13 ms 672 KB Output is correct
2 Correct 7 ms 672 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 23 ms 748 KB Output is correct
2 Correct 3 ms 748 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 748 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 39 ms 1212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 2 ms 1212 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 3 ms 1212 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -