Submission #7501474


Source Code Expand

Copy
#include <bits/stdc++.h>
using namespace std;
using int64 = long long;
#define int int64

int check(vector<int> t){
  int res = 24;
  sort(t.begin(), t.end());
  t.erase(unique(t.begin(), t.end()), t.end());
  
  for(int i=0;i<t.size();++i){
    int diff = abs(t[i]-t[(i+1)%t.size()]);
    res = min(min(24-diff, diff), res);
  }
  
  if (res>12) return 0;
  return res;
}

signed main() {
  int n;cin>>n;
  vector<int> c(13,0);
  for(int i=0;i<n;++i){
    int f;cin>>f;
    ++c[f];
  }

  if(c[0]){
    cout<<0<<endl;
    return 0;
  }
  
  vector<int> single, db;
  for(int i=0;i<13;++i){
    if(c[i]>=3) {
      cout<<0<<endl;
      return 0;
    }
    else if(c[i]==2) db.push_back(i);
    else if(c[i]==1) single.push_back(i);
  }
  
  int ans = 0;
  vector<int> table;
  table.push_back(0);
  for(int i=0;i<db.size();++i){
    table.push_back(db[i]);
    if (db[i]!=12) table.push_back(24-db[i]);
  }
  
  if (single.size()==0) {
    ans = check(table);
  }
  
  for(int bit=0;bit<(1<<single.size());++bit){
    vector<int> p(single);
    for(int i=0;i<single.size();++i){
      if((bit>>i) & 1) {
        p[i] = 24 - p[i];
      }
    }

    vector<int> tt(table);
    for(int i=0;i<single.size();++i){
      tt.push_back(p[i]);
    } 
    ans = max(check(tt), ans);
  }

  cout<<ans<<endl;
  
  return 0;
}

Submission Info

Submission Time
Task C - Time Gap
User task4233
Language C++14 (GCC 5.4.1)
Score 500
Code Size 1388 Byte
Status
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name sample All
Score / Max Score 0 / 0 500 / 500
Status
× 3
× 49
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 1 ms 256 KB
01-02.txt 1 ms 256 KB
01-03.txt 1 ms 256 KB
01-04.txt 1 ms 256 KB
01-05.txt 1 ms 256 KB
01-06.txt 1 ms 256 KB
01-07.txt 1 ms 256 KB
01-08.txt 1 ms 256 KB
01-09.txt 1 ms 256 KB
01-10.txt 1 ms 256 KB
01-11.txt 1 ms 256 KB
01-12.txt 1 ms 256 KB
01-13.txt 1 ms 256 KB
01-14.txt 1 ms 256 KB
01-15.txt 1 ms 256 KB
01-16.txt 1 ms 256 KB
01-17.txt 1 ms 256 KB
01-18.txt 1 ms 256 KB
01-19.txt 1 ms 256 KB
01-20.txt 1 ms 256 KB
01-21.txt 1 ms 256 KB
01-22.txt 1 ms 256 KB
01-23.txt 1 ms 256 KB
01-24.txt 1 ms 256 KB
01-25.txt 1 ms 256 KB
01-26.txt 1 ms 256 KB
01-27.txt 1 ms 256 KB
01-28.txt 1 ms 256 KB
01-29.txt 1 ms 256 KB
01-30.txt 1 ms 256 KB
01-31.txt 1 ms 256 KB
01-32.txt 1 ms 256 KB
01-33.txt 1 ms 256 KB
01-34.txt 1 ms 256 KB
01-35.txt 1 ms 256 KB
01-36.txt 1 ms 256 KB
01-37.txt 1 ms 256 KB
01-38.txt 1 ms 256 KB
01-39.txt 1 ms 256 KB
01-40.txt 1 ms 256 KB
01-41.txt 1 ms 256 KB
01-42.txt 1 ms 256 KB
01-43.txt 1 ms 256 KB
sample-01.txt 1 ms 256 KB
sample-02.txt 1 ms 256 KB
sample-03.txt 1 ms 256 KB