Submission #528164

#TimeUsernameProblemLanguageResultExecution timeMemory
528164AndresTLArchery (IOI09_archery)C++11
10 / 100
2094 ms6152 KiB
#include<bits/stdc++.h>
using namespace std;
const int LIMIT=200000;
int level[(2*LIMIT)+2];
int Objetivos, Rounds, MyArcher;
int solve(){
  vector<pair<int,int>> Obj;
  for(int i=1;i<=Objetivos*2;i+=2){
    Obj.push_back(make_pair(level[i],level[i+1]));
  }
  int ultimo=0;
  int pos=0;
  for(int i=1;i<=Rounds;i++){
    for(int j=0;j<Objetivos;j++){
      if(j==0){
        if(Obj[j].first<Obj[j].second){
          ultimo=Obj[j].second;
        }else{
          ultimo=Obj[j].first;
          Obj[j].first=Obj[j].second;
        }
        Obj[j].second=-1;
        if(Obj[j].first==MyArcher){
          pos=j+1;
        }else if(ultimo==MyArcher){
          pos=Objetivos;
        }
      }else{
        if(Obj[j].first<Obj[j].second){
          Obj[j-1].second=Obj[j].first;
          Obj[j].first=Obj[j].second;
        }else{
          Obj[j-1].second=Obj[j].second;
        }
        Obj[j].second=-1;
        if(Obj[j].first==MyArcher){
          pos=j+1;
        }else if(Obj[j-1].second==MyArcher){
          pos=j;
        }
      }
    }
    Obj[Objetivos-1].second=ultimo;    
  }
  return pos;
};
int main(){
  ios_base::sync_with_stdio(0);cin.tie();
  cin>>Objetivos>>Rounds>>MyArcher;
  for(int i=2;i<=Objetivos*2;i++){
    cin>>level[i];
  }
  int gano,mgano=100000;
  int res=0;
  for(int i=1;i<=Objetivos*2;i++){
    level[i-1]=level[i];
    level[i]=MyArcher;
    gano=solve();
    if(mgano>=gano){
      mgano=gano;
      res=i;
    }
  }
  cout<<(res+1)/2<<'\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...