제출 #582252

#제출 시각아이디문제언어결과실행 시간메모리
582252talant117408Art Collections (BOI22_art)C++17
100 / 100
2024 ms1056 KiB
#include "art.h"
#include <bits/stdc++.h>
 
#ifndef EVAL
#include "sample_grader.cpp"
#endif
 
using namespace std;
 
typedef long long ll;
typedef pair <int, int> pii;
typedef pair <ll, ll> pll;
 
#define pb                  push_back
#define mp                  make_pair
#define all(v)              (v).begin(),(v).end()
#define rall(v)             (v).rbegin(),(v).rend()
#define lb                  lower_bound
#define ub                  upper_bound
#define sz(v)               int((v).size())
#define do_not_disturb      ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl                '\n'
//
// --- Sample implementation for the task art ---
//
// To compile this program with the sample grader, place:
//     art.h art_sample.cpp sample_grader.cpp
// in a single folder, then open the terminal in this directory (right-click onto an empty spot in the directory,
// left click on "Open in terminal") and enter e.g.:
//     g++ -std=c++17 art_sample.cpp sample_grader.cpp
// in this folder. This will create a file a.out in the current directory which you can execute from the terminal
// as ./a.out
// See task statement or sample_grader.cpp for the input specification
//
 
void solve(int n) {
    set <pii> order;
    map <pii, int> used;
    for (int i = 1; i <= n; i++) {
        vector <int> guess1, guess2;
        
        for (int j = i; j <= n; j++) guess1.pb(j);
        for (int j = 1; j < i; j++) guess1.pb(j);
        for (int j = i+1; j <= n; j++) guess2.pb(j);
        for (int j = 1; j <= i; j++) guess2.pb(j);
        
        int ans1, ans2;
        if (!used.count(mp(guess1[0], guess1[n-1]))) {
            used[mp(guess1[0], guess1[n-1])] = publish(guess1);
        }
        ans1 = used[mp(guess1[0], guess1[n-1])];
        
        if (!used.count(mp(guess2[0], guess2[n-1]))) {
            used[mp(guess2[0], guess2[n-1])] = publish(guess2);
        }
        ans2 = used[mp(guess2[0], guess2[n-1])];
        
        order.insert(mp(ans1-ans2, i));
    }
    vector <int> ans;
    for (auto to : order) ans.pb(to.second);
    answer(ans);
}

컴파일 시 표준 에러 (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...