Submission #1351222

#TimeUsernameProblemLanguageResultExecution timeMemory
1351222jumpSouvenirs (IOI25_souvenirs)C++20
7 / 100
9 ms408 KiB
#include "souvenirs.h"
#include <iostream>
#include <utility>
#include <vector>
#define ll long long
ll ng;
std::pair<std::vector<int>,long long> res;
std::vector<int> total;
void wrap(ll ts){
  //std::cout << ts << ' ';
  res = transaction(ts);
  for(int i=0;i<res.first.size();i++){
    total[res.first[i]]+=1;
  }
}
bool reallystupidcheck(){
  return (res.first.size()>1||res.second>0);
}
bool anotherreallystupidcheck(){
  for(int i=0;i<ng;i++){
    if(total[i]!=i)return false;
  }
  return true;
}
void buy_souvenirs(int N, long long P0) {
  ng=N;
  total.resize(N+4);
  ll last= P0-1;
  ll num=1;
  while(!anotherreallystupidcheck()){
    wrap(last);
    bool res = reallystupidcheck();
    if(res)last-=1;
    last=std::max(last,(ll)1);
    if(num==N){
      while(!anotherreallystupidcheck()){
        wrap(last);
      }
    }
    for(int i=1;i<num;i++)wrap(last);
    num+=1;
    last-=1;
    last=std::max(last,(ll)1);
  }
  return;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...