Submission #82241

# Submission time Handle Problem Language Result Execution time Memory
82241 2018-10-29T15:26:16 Z Leonardo_Paes Doktor (COCI17_doktor) C++11
60 / 100
1000 ms 2648 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==500.000){
      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 508 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 508 KB Output is correct
2 Correct 2 ms 512 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 716 KB Output is correct
2 Correct 4 ms 716 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 13 ms 740 KB Output is correct
2 Correct 6 ms 768 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 19 ms 792 KB Output is correct
2 Correct 3 ms 792 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 50 ms 1004 KB Output is correct
2 Runtime error 2 ms 1004 KB Execution killed with signal 11 (could be triggered by violating memory limits)
# Verdict Execution time Memory Grader output
1 Execution timed out 1047 ms 2648 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 2 ms 2648 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 2 ms 2648 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -