제출 #675992

#제출 시각아이디문제언어결과실행 시간메모리
675992TigerpantsArt Collections (BOI22_art)C++17
100 / 100
1449 ms728 KiB
#include "art.h"

#include <iostream>
#include <vector>
#include <set>
#include <map>
#include <algorithm>
#include <numeric>
#include <bitset>
#include <queue>
#include <iomanip>
#include <cmath>
#include <string>

using namespace std;

typedef long long int ll;
typedef long double ld;
typedef vector<ll> vll;
typedef vector<ld> vld;
typedef vector<bool> vb;
typedef vector<vll> vvll;
typedef vector<vld> vvld;
typedef vector<vvll> vvvll;
typedef pair<ll, ll> pll;
typedef pair<ld, ld> pld;
typedef vector<pll> vpll;
typedef vector<pld> vpld;
typedef set<ll> sll;
typedef set<pll> spll;
typedef map<pll, ll> mpll_ll;
typedef map<ll, pll> mll_pll;
const ll bitset_size = 256;
typedef bitset<bitset_size> bits;
typedef vector<bits> vbits;
typedef string str;
typedef vector<str> vstr;

#define rep(x, a, b) for (ll x = a; x < b; x++)
#define rev_rep(x, a, b) for (ll x = a; x >= b; x--)
#define itr_rep(type_, x, b) for (type_::iterator x = b.begin(); x != b.end(); x++)
#define mp(a, b) make_pair(a, b)
#define all(a) a.begin(), a.end()
#define sz(a) a.size()
#define resz(a, b) a.resize(b)
#define sort_all(a) sort(all(a))
#define pb(a) push_back(a)
#define fill_sz(a, b) fill_n(a.begin, sz(a), b)

vector<int> rotate(vector<int> a) {
    int b = a[0];
    rep(i, 1, sz(a)) {
        a[i - 1] = a[i];
    }
    a[sz(a) - 1] = b;
    return a;
}

void solve(int N) {
    vll complaints(N, 0); // complaints[i] contains the number of complaints of {i, i + 1, i + 2, .., N - 1, 0, 1, .., i - 1}
    vector<int> order(N);
    rep(i, 0, N) {order[i] = i + 1;}
    rep(i, 0, N) {
        complaints[i] = publish(order);
        order = rotate(order);
    }
    vpll fame(N);
    rep(i, 0, N) {
        fame[i] = mp(complaints[i] - complaints[(i + 1) % N], i);
    }
    sort_all(fame);
    rep(i, 0, N) {
        order[i] = fame[i].second + 1;
    }
    answer(order);
}

컴파일 시 표준 에러 (stderr) 메시지

art.cpp: In function 'std::vector<int> rotate(std::vector<int>)':
art.cpp:39:39: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 | #define rep(x, a, b) for (ll x = a; x < b; x++)
      |                                       ^
art.cpp:52:5: note: in expansion of macro 'rep'
   52 |     rep(i, 1, sz(a)) {
      |     ^~~
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...