# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1037303 | 2024-07-28 13:12:43 | Zicrus | Scales (IOI15_scales) | C++17 | 72.02 / 100 | 134 ms | 600 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <bits/stdc++.h>
#include "scales.h"
using namespace std;
typedef long long ll;
vector<vector<int>> perms(720);
void init(int T) {
for (int i = 0; i < 720; i++) {
perms[i] = {1, 2, 3, 4, 5, 6};
swap(perms[i][0], perms[i][0 + ((i) % 6)]);
swap(perms[i][1], perms[i][1 + ((i/6) % 5)]);
swap(perms[i][2], perms[i][2 + ((i/6/5) % 4)]);
swap(perms[i][3], perms[i][3 + ((i/6/5/4) % 3)]);
swap(perms[i][4], perms[i][4 + ((i/6/5/4/3) % 2)]);
}
}
int maxPossAfterLow(vector<bool> &poss, int a, int b, int c) {
int mxA = 0, mxB = 0, mxC = 0;
for (int i = 0; i < 720; i++) {
if (!poss[i]) continue;
int idA = find(perms[i].begin(), perms[i].end(), a) - perms[i].begin();
int idB = find(perms[i].begin(), perms[i].end(), b) - perms[i].begin();
int idC = find(perms[i].begin(), perms[i].end(), c) - perms[i].begin();
if (idA < idB && idA < idC) mxA++;
if (idB < idA && idB < idC) mxB++;
if (idC < idB && idC < idA) mxC++;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Compilation message (stderr)
scales.cpp: In function 'void init(int)': scales.cpp:9:15: warning: unused parameter 'T' [-Wunused-parameter] 9 | void init(int T) { | ~~~~^ scales.cpp: In function 'int maxPossAfterLow(std::vector<bool>&, int, int, int)': scales.cpp:24:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 24 | int idA = find(perms[i].begin(), perms[i].end(), a) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:25:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 25 | int idB = find(perms[i].begin(), perms[i].end(), b) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:26:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 26 | int idC = find(perms[i].begin(), perms[i].end(), c) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp: In function 'int maxPossAfterMid(std::vector<bool>&, int, int, int)': scales.cpp:38:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 38 | int idA = find(perms[i].begin(), perms[i].end(), a) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:39:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 39 | int idB = find(perms[i].begin(), perms[i].end(), b) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:40:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 40 | int idC = find(perms[i].begin(), perms[i].end(), c) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp: In function 'int maxPossAfterHigh(std::vector<bool>&, int, int, int)': scales.cpp:52:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 52 | int idA = find(perms[i].begin(), perms[i].end(), a) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:53:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 53 | int idB = find(perms[i].begin(), perms[i].end(), b) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:54:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 54 | int idC = find(perms[i].begin(), perms[i].end(), c) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp: In function 'int maxPossAfterD(std::vector<bool>&, int, int, int, int)': scales.cpp:66:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 66 | int idA = find(perms[i].begin(), perms[i].end(), a) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:67:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 67 | int idB = find(perms[i].begin(), perms[i].end(), b) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:68:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 68 | int idC = find(perms[i].begin(), perms[i].end(), c) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:69:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 69 | int idD = find(perms[i].begin(), perms[i].end(), d) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp: In function 'void queryLow(std::vector<bool>&, ll&, int, int, int)': scales.cpp:95:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 95 | int idT = find(perms[i].begin(), perms[i].end(), t) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:96:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 96 | int idA = find(perms[i].begin(), perms[i].end(), a) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:97:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 97 | int idB = find(perms[i].begin(), perms[i].end(), b) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:98:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 98 | int idC = find(perms[i].begin(), perms[i].end(), c) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp: In function 'void queryMid(std::vector<bool>&, ll&, int, int, int)': scales.cpp:107:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 107 | int idT = find(perms[i].begin(), perms[i].end(), t) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:108:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 108 | int idA = find(perms[i].begin(), perms[i].end(), a) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:109:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 109 | int idB = find(perms[i].begin(), perms[i].end(), b) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:110:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 110 | int idC = find(perms[i].begin(), perms[i].end(), c) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp: In function 'void queryHigh(std::vector<bool>&, ll&, int, int, int)': scales.cpp:120:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 120 | int idT = find(perms[i].begin(), perms[i].end(), t) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:121:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 121 | int idA = find(perms[i].begin(), perms[i].end(), a) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:122:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 122 | int idB = find(perms[i].begin(), perms[i].end(), b) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:123:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 123 | int idC = find(perms[i].begin(), perms[i].end(), c) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp: In function 'void queryD(std::vector<bool>&, ll&, int, int, int, int)': scales.cpp:132:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 132 | int idT = find(perms[i].begin(), perms[i].end(), t) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:133:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 133 | int idA = find(perms[i].begin(), perms[i].end(), a) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:134:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 134 | int idB = find(perms[i].begin(), perms[i].end(), b) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:135:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 135 | int idC = find(perms[i].begin(), perms[i].end(), c) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp:136:61: warning: conversion from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >::difference_type' {aka 'long int'} to 'int' may change value [-Wconversion] 136 | int idD = find(perms[i].begin(), perms[i].end(), d) - perms[i].begin(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ scales.cpp: In function 'void query(std::vector<bool>&, ll&)': scales.cpp:171:31: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion] 171 | mnD = r; | ^
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |