Submission #1250670

#TimeUsernameProblemLanguageResultExecution timeMemory
1250670starnightsnowSouvenirs (IOI25_souvenirs)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

extern pair<vector<int>, long long> transaction(long long M);

void buy_souvenirs(int N, long long P0) {
    if (N == 2) {
        auto [gotten, change] = transaction(P0 - 1);
        return;
    }
    if(N == 3){
        auto [gotten1, change1] = transaction(P0 - 1);
        ll use;
        // got cheapest
        if(gotten1.size() == 1){
            use = (P0 - 1) - change1;
            auto [gotten2, change2] = transaction(use);
            auto [gotten2, change2] = transaction(use);
        }
        // bough 2 items
        else{
            use = ((P0 - 1) - change1) / 2;
            auto [gotten2, change2] = transaction(use);
        }
    }
}

Compilation message (stderr)

souvenirs.cpp: In function 'void buy_souvenirs(int, long long int)':
souvenirs.cpp:19:19: error: conflicting declaration 'auto gotten2'
   19 |             auto [gotten2, change2] = transaction(use);
      |                   ^~~~~~~
souvenirs.cpp:18:19: note: previous declaration as 'std::tuple_element<0, std::pair<std::vector<int>, long long int> >::type&& gotten2'
   18 |             auto [gotten2, change2] = transaction(use);
      |                   ^~~~~~~
souvenirs.cpp:19:28: error: conflicting declaration 'auto change2'
   19 |             auto [gotten2, change2] = transaction(use);
      |                            ^~~~~~~
souvenirs.cpp:18:28: note: previous declaration as 'std::tuple_element<1, std::pair<std::vector<int>, long long int> >::type&& change2'
   18 |             auto [gotten2, change2] = transaction(use);
      |                            ^~~~~~~