제출 #907381

#제출 시각아이디문제언어결과실행 시간메모리
907381Tymond순열 (APIO22_perm)C++17
100 / 100
12 ms512 KiB
#include <bits/stdc++.h> //#include "perm.h" using namespace std; using ll = long long; using ld = long double; const ld INF = 1e9; void zmien(vector<ld>& a){ vector<ld> nasz = a; sort(nasz.begin(), nasz.end()); for(int i = 0; i < (int)a.size(); i++){ for(int j = 0; j < nasz.size(); j++){ if(a[i] == nasz[j]){ a[i] = j; break; } } } } vector<signed> construct_permutation(ll k){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int aktBit = 64 - __builtin_clzll(k); vector<ld> ans; bool bylo = false; while(aktBit > 0){ aktBit -= 2; if(aktBit == -1){ //został jeden na końcu ans.push_back(INF);//n * 2 if(k & 1){ ans.push_back(-INF);//n + 1 } }else{ int kon = (k >> aktBit) & 3; if(ans.size() == 0){ if(kon == 2){ ans = {0}; }else{ ans = {1, 0}; bylo = true; } }else{ if(kon == 0){ //n * 4 ans.push_back(INF); ans.push_back(INF + 1); }else if(kon == 1){ //n * 4 + 1 ans.push_back(INF); ans.push_back(INF + 1); ans.push_back(-INF); bylo = true; }else if(kon == 2){ //n * 4 + 2 ans.push_back(INF); ans.push_back(-INF); ans.push_back(INF + 1); bylo = true; }else if(kon == 3){ //4 * n + 3 if(bylo){ ans.push_back(INF); ans.push_back(INF + 1); ans.push_back(1.5); }else{ ans.push_back(INF); ans.push_back(-INF); ans.push_back(INF + 1); ans.push_back(-INF - 1); bylo = true; } } } } zmien(ans); } return vector<signed> (ans.begin(), ans.end()); }

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

perm.cpp: In function 'void zmien(std::vector<long double>&)':
perm.cpp:15:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long double>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |   for(int j = 0; j < nasz.size(); j++){
      |                  ~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...