#include "souvenirs.h"
#include <utility>
#include <vector>
#include <iostream>
using namespace std;
void buy_souvenirs(int N, long long P0) {
  pair<vector<int>, long long> res;
  long long curp;
 
  if (N==2) {
   res=transaction(P0-1); return;
  } else
  if (N==3) {
   res=transaction(P0-1);
   curp=(P0-1-res.second);
   if ((int)res.first.size()==2) {
    res=transaction(curp/2);
    return;  
   } else {
    res=transaction(curp-1); res=transaction(curp-1);
    return;
   }
  } else
  if (P0==N) {
   curp=P0-1;
   for (int i=1;i<=N-1;i++){
  	for (int j=1;j<=i;j++) res=transaction(curp);
  	curp--;  	 
   }//i
   return;
  } else {
   int cnt1=0;
   curp=P0-1;  
   for (int i=1;i<N-1;i++){
   	for (int j=1;j<=i;j++) {	    
	   res=transaction(curp);
	   if ((int)res.first.size()>1) {	   
	   	cnt1++;
	   	curp--;
	   }
	   if (res.second>0) curp--;	   
    }
   	curp--;            	
   }//i
   
   for (int i=cnt1+1;i<=N-1;i++) res=transaction(curp);
   return;
  }
   
 
  return;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |