Submission #572940

#TimeUsernameProblemLanguageResultExecution timeMemory
572940MohamedFaresNebiliArt Collections (BOI22_art)C++17
70 / 100
1397 ms712 KiB
#include <bits/stdc++.h>
#include "art.h"
#include <ext/pb_ds/assoc_container.hpp>

        using namespace std;
        using namespace __gnu_pbds;

        using ll = long long;
        using ii = pair<int, int>;
        using vi = vector<int>;

        #define pb push_back
        #define pp pop_back
        #define ff first
        #define ss second
        #define lb lower_bound
        #define all(x) (x).begin(), (x).end()

        typedef tree<int, null_type, less<int>, rb_tree_tag,
            tree_order_statistics_node_update> indexed_set;

        void solve(int N) {
            int income[N + 1]{0};
            for(int l = 1; l <= N; l++) {
                vector<int> R;
                for(int i = 1; i <= N; i++) {
                    if(i == l) continue;
                    R.pb(i);
                }
                R.pb(l); int A = publish(R);
                R.clear(); R.pb(l);
                for(int i = 1; i <= N; i++) {
                    if(i == l) continue;
                    R.pb(i);
                }
                int B = publish(R);
                income[l] = (N + A - B) / 2;
            }
            vector<int> R;
            for(int l = N - 1; l >= 0; l--) {
                for(int i = 1; i <= N; i++) {
                    if(income[i] != l) continue;
                    R.pb(i); break;
                }
            }
            answer(R);
        }

Compilation message (stderr)

interface.cpp: In function 'int publish(std::vector<int>)':
interface.cpp:20:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   20 |     if(v.size() != N) {
      |        ~~~~~~~~~^~~~
interface.cpp: In function 'void answer(std::vector<int>)':
interface.cpp:36:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   36 |     if(v.size() != N) {
      |        ~~~~~~~~~^~~~
#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...