Submission #1870960
Source Code Expand
// Copyright (C) 2017 Sayutin Dmitry. // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License as // published by the Free Software Foundation; version 3 // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program; If not, see <http://www.gnu.org/licenses/>. #include <iostream> #include <vector> #include <stdint.h> #include <algorithm> #include <set> #include <map> #include <array> #include <queue> #include <stack> #include <functional> #include <utility> #include <string> #include <assert.h> #include <iterator> #include <cstdint> #include <cinttypes> #include <string.h> #include <random> #include <numeric> #include <tuple> using std::cin; using std::cout; using std::cerr; using std::vector; using std::map; using std::array; using std::set; using std::string; using std::pair; using std::make_pair; using std::min; using std::abs; using std::max; using std::unique; using std::sort; using std::generate; using std::reverse; using std::min_element; using std::max_element; #ifdef LOCAL #define LASSERT(X) assert(X) #else #define LASSERT(X) {} #endif template <typename T> T input() { T res; cin >> res; LASSERT(cin); return res; } template <typename IT> void input_seq(IT b, IT e) { std::generate(b, e, input<typename std::remove_reference<decltype(*b)>::type>); } #define SZ(vec) int((vec).size()) #define ALL(data) data.begin(),data.end() #define RALL(data) data.rbegin(),data.rend() #define TYPEMAX(type) std::numeric_limits<type>::max() #define TYPEMIN(type) std::numeric_limits<type>::min() #define pb push_back #define eb emplace_back int solve(vector<int>& a) { a[0] += 1; if (*std::max_element(ALL(a)) >= 3) return 0; vector<int> sttic; int MSK = 0; for (int i = 0; i <= 12; ++i) if (a[i] == 2) { sttic.push_back(i); sttic.push_back((24 - i) % 24); } else if (a[i] == 1) { MSK |= (1 << i); } int bst = -1; for (int i = 0; i != (1 << 13); ++i) if ((MSK | i) == MSK) { vector<int> lst = sttic; for (int j = 0; j <= 12; ++j) if (a[j] == 1) { if (i & (1 << j)) lst.push_back((24 - j) % 24); else lst.push_back(j); } sort(ALL(lst)); int res = 1e6; for (int j = 0; j != SZ(lst); ++j) res = min(res, (24 + lst[(j + 1) % SZ(lst)] - lst[j]) % 24); bst = max(bst, res); } return bst; } int main() { std::iostream::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); // code here. vector<int> a(13, 0); for (int n = input<int>(); n != 0; --n) a[input<int>()] += 1; cout << solve(a) << "\n"; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - Time Gap |
User | cdkrot |
Language | C++14 (GCC 5.4.1) |
Score | 500 |
Code Size | 3391 Byte |
Status | AC |
Exec Time | 2 ms |
Memory | 256 KB |
Judge Result
Set Name | sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 500 / 500 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
sample | sample-01.txt, sample-02.txt, sample-03.txt |
All | sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, 01-31.txt, 01-32.txt, 01-33.txt, 01-34.txt, 01-35.txt, 01-36.txt, 01-37.txt, 01-38.txt, 01-39.txt, 01-40.txt, 01-41.txt, 01-42.txt, 01-43.txt, sample-01.txt, sample-02.txt, sample-03.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01-01.txt | AC | 1 ms | 256 KB |
01-02.txt | AC | 1 ms | 256 KB |
01-03.txt | AC | 1 ms | 256 KB |
01-04.txt | AC | 1 ms | 256 KB |
01-05.txt | AC | 1 ms | 256 KB |
01-06.txt | AC | 1 ms | 256 KB |
01-07.txt | AC | 1 ms | 256 KB |
01-08.txt | AC | 1 ms | 256 KB |
01-09.txt | AC | 1 ms | 256 KB |
01-10.txt | AC | 1 ms | 256 KB |
01-11.txt | AC | 1 ms | 256 KB |
01-12.txt | AC | 1 ms | 256 KB |
01-13.txt | AC | 1 ms | 256 KB |
01-14.txt | AC | 1 ms | 256 KB |
01-15.txt | AC | 1 ms | 256 KB |
01-16.txt | AC | 1 ms | 256 KB |
01-17.txt | AC | 1 ms | 256 KB |
01-18.txt | AC | 1 ms | 256 KB |
01-19.txt | AC | 1 ms | 256 KB |
01-20.txt | AC | 1 ms | 256 KB |
01-21.txt | AC | 1 ms | 256 KB |
01-22.txt | AC | 1 ms | 256 KB |
01-23.txt | AC | 1 ms | 256 KB |
01-24.txt | AC | 1 ms | 256 KB |
01-25.txt | AC | 1 ms | 256 KB |
01-26.txt | AC | 1 ms | 256 KB |
01-27.txt | AC | 1 ms | 256 KB |
01-28.txt | AC | 1 ms | 256 KB |
01-29.txt | AC | 1 ms | 256 KB |
01-30.txt | AC | 1 ms | 256 KB |
01-31.txt | AC | 1 ms | 256 KB |
01-32.txt | AC | 1 ms | 256 KB |
01-33.txt | AC | 1 ms | 256 KB |
01-34.txt | AC | 2 ms | 256 KB |
01-35.txt | AC | 1 ms | 256 KB |
01-36.txt | AC | 1 ms | 256 KB |
01-37.txt | AC | 1 ms | 256 KB |
01-38.txt | AC | 1 ms | 256 KB |
01-39.txt | AC | 1 ms | 256 KB |
01-40.txt | AC | 1 ms | 256 KB |
01-41.txt | AC | 1 ms | 256 KB |
01-42.txt | AC | 1 ms | 256 KB |
01-43.txt | AC | 1 ms | 256 KB |
sample-01.txt | AC | 1 ms | 256 KB |
sample-02.txt | AC | 1 ms | 256 KB |
sample-03.txt | AC | 1 ms | 256 KB |